我有一个数据框,并希望最后显示所需的输出.相反,我在中间得到NA输出.有没有办法用dplyr做我想做的事情?
x <- c(1234, 1234, 1234, 5678, 5678)
y <- c(95138, 30004, 90038, 01294, 15914)
z <- c('2014-01-20', '2014-10-30', '2015-04-12', '2010-2-28', '2015-01-01')
df <- data.frame(x, y, z)
df$z <- as.Date(df$z)
df %>% group_by(x) %>% summarise(y = y[max(z)])
What I get:
x y
1 1234 NA
2 5678 NA
Desired Output:
x y
1 1234 90038
2 5678 15914
Run Code Online (Sandbox Code Playgroud) 我在Shiny UI中尝试渲染的本地文件夹中有一个静态图像,但它不起作用.显示中间带有问号的损坏图像.
ui <- fluidPage(img(src = 'imagefile.png', height = '100px', width = '100px'))
server <- function(input, output) {}
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)
知道发生了什么事吗?
我正在尝试使用一个没有标题的闪亮数据表。我到了不显示列名的地步,但似乎无法摆脱带有排序箭头的标题:
library(DT)
df < data.frame(x = c('a', 'b', 'c'), y = c(1, 2, 3))
datatable(df, rownames = NULL, colnames = NULL, options = list(dom = 't'))
Run Code Online (Sandbox Code Playgroud)
有什么办法可以完全摆脱标题吗?
我是R编程的新手,已经搜索了很多个小时.我很感激你的帮助.
我有一个数据框,有3列(日期,描述,借记)
Date Description Debit
2014-01-01 "abcdef VA" 15
2014-01-01 "ghijkl" NY" 56
Run Code Online (Sandbox Code Playgroud)
我试图提取第二个(描述)列的最后2个字符(即2个字母的州名缩写).我对应用类型函数不太满意.
我试过用
l <- lapply(a$Description, function(x) {substr(x, nchar(x)-2+1, nchar(x))})
Run Code Online (Sandbox Code Playgroud)
但得到以下错误消息
Error in nchar(x) : invalid multibyte string, element 1
Run Code Online (Sandbox Code Playgroud)
我尝试了多种其他方法,但有相同的错误.
我很确定我遗漏了一些非常基本的东西,所以非常感谢你的帮助
谢谢
我有一个像这样的非常基本的信息框,并且想要调整高度,因为当前高度对于我要合并的内容来说太多了。
知道我该怎么做吗?我尝试了这里的建议:r Shinydashboard - change height of valueBox。但是,这没有任何变化。
sidebar <- dashboardSidebar(
sidebarMenu(id = 'sidebarmenu',
menuItem('About', tabName = 'about'))
)
about <- tabItem('about', fluidPage(
fluidRow(
infoBoxOutput('age')
)
)
)
body <- dashboardBody(
tabItems(
about
)
)
ui <- dashboardPage(
dashboardHeader(
title = 'My App'
),
sidebar = sidebar,
body = body
)
server <- function(input, output) {
output$age <- renderInfoBox({
infoBox('Age: ', 50, icon = icon('list'), width = 6)
})
}
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud) data.table相当新的.经过两年的抵抗,我终于放弃了我的数据大小.我试图根据滞后时间差(POSIXct)按组计算"等待"时间,如下所示:
dt <- data.table(id = c(rep('a', 5), rep('b', 5)),
time = (Sys.time() + rnorm(10, 100, 10)))
dt <- dt[order(id, time)]
dt[, wait := difftime(time, shift(time, fill = min(time), type = 'lag'),
unit = 'mins'),
by = id]
Run Code Online (Sandbox Code Playgroud)
这工作正常,但是当我在1150万行上运行它有近100,000个组(id)时,它需要大约10s(用户时间和经过时间),其中相同的代码在4500万行上有近200,000个组(id),它需要300多秒的用户时间(超过730秒的经过时间).我用system.time代码周围的命令测量运行时间.
有关为何如此完全非线性扩展性能的想法?而且,我如何通过编写更好的data.table代码来使其线性扩展?
我正在尝试使用闪亮的模块来重用 UI 和服务器代码来呈现共享相同演示文稿的三个不同数据集。
在 UI/服务器代码之外使用基于 javascript 的模态弹出链接创建时,在处理命名空间时遇到了一些挑战。
这是我的非工作应用程序代码:
library(shiny)
library(shinyBS)
library(DT)
df <- data.frame(id = c('a', 'b', 'c'), value = c(1, 2, 3))
on_click_js = "
Shiny.onInputChange('myLinkName', '%s');
$('#myModal').modal('show')
"
convert_to_link = function(x) {
as.character(tags$a(href = "#", onclick = sprintf(on_click_js, x), x))
}
df$id_linked <- sapply(df$id, convert_to_link)
df <- df[, c('id_linked', 'value')]
mySampleUI <- function(id) {
ns <- NS(id)
fluidPage(
mainPanel(
dataTableOutput(ns('myDT')),
bsModal(id = 'myModal',
title = 'My Modal Title',
trigger = '',
size = 'large',
textOutput(ns('modalDescription'))
),
width = …Run Code Online (Sandbox Code Playgroud) 我之前在代码中成功使用了bsModal.但是,我似乎无法在用户默认访问应用的第一页时显示模式弹出窗口.我认为这样的事情会奏效,但不会.知道如何在页面访问时触发bsModal吗?
library(shiny)
library(shinyBS)
ui <- fluidPage(
mainPanel(
bsModal(id = 'startupModal', title = 'Dum Dum', trigger = '',
size = 'large', p("here is my mumbo jumbo")),
width = 12
)
)
server <- function(input, output, session) {
}
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)
我只需要在用户访问应用程序时向用户发出消息,然后允许他们关闭模式弹出窗口并自由导航应用程序的其余部分.我正在使用Shinydashboard.所以,最终,这必须与之合作.
我有一堆来自同一主题的研究的“配对”观察结果,我正在尝试构建一个意大利面条图来可视化这些观察结果,如下所示:
library(plotly)
df <- data.frame(id = rep(1:10, 2),
type = c(rep('a', 10), rep('b', 10)),
state = rep(c(0, 1), 10),
values = c(rnorm(10, 2, 0.5), rnorm(10, -2, 0.5)))
df <- df[order(df$id), ]
plot_ly(df, x = type, y = values, group = id, type = 'line') %>%
layout(showlegend = FALSE)
Run Code Online (Sandbox Code Playgroud)
它产生了我正在寻找的正确情节。但是,代码以自己的颜色显示了每个分组的行,这真的很烦人,让人分心。我似乎无法找到摆脱颜色的方法。
额外问题:我实际上想使用color = state该变量并实际为斜线着色。
任何方法/想法?
我只是想在启用ScrollX的情况下向右滚动时保持最左边的列固定,而无法使其正常工作。知道我需要做些什么吗?
library(shiny)
library(DT)
ui <- fluidPage(
fluidRow(mainPanel(DT::dataTableOutput('mtcars'), width = 12))
)
server <- server <- function(input, output, session) {
output$mtcars <- DT::renderDataTable({
mtcars %>%
DT::datatable(
selection = 'none', rownames = '', filter = 'none',
options = list(
paging = TRUE, searching = TRUE, info = FALSE,
sort = TRUE, scrollX = TRUE, fixedColumns = list(leftColumns = 1)
)
)
})
}
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)
此处的版本信息:
> packageVersion('DT')
[1] ‘0.4.16’
> packageVersion('shiny')
[1] ‘1.1.0’
> version
_
platform …Run Code Online (Sandbox Code Playgroud)