【发布时间】:2015-04-17 20:29:58
【问题描述】:
我目前正在构建一个闪亮的应用程序并尝试获取一组日期以将其作为字符串呈现给最终用户,同时在服务器端代码中调用时仍保持其日期格式。
这里可能有一个简单的解决方案,但不确定如何在 selectInput 下拉菜单中获取要格式化的日期。在我的实际用例中,使用日期滑块并不理想,因为日期不遵循共同的间隔。
下面的可重现示例:
# setup
require(lubridate)
test.dates <- as.Date(c('2014-06-01', '2014-07-01', '2014-08-01',
'2014-09-01', '2014-10-01', '2014-11-01',
'2014-12-01', '2015-01-01','2015-02-01',
'2015-03-01', '2015-04-01'))
test.names <- as.character(paste0(month(test.dates, label = T), ' ',
year(test.dates)))
test.df <- data.frame(date = test.dates)
row.names(test.df) <- test.names
# shiny
server <- function(input, output) {
output$table <- renderTable(test.df)
}
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
selectInput("test", label = "DATE FORMAT TEST:", choices =
test.df, selected = test.df[1,])
),
mainPanel(tableOutput('table'))
)
)
shinyApp(ui = ui, server = server)
【问题讨论】:
-
使用下面@cdeterman 的建议,当我使用
list或array而不是data.frame时,字符日期的UI 呈现将呈现为数组元素的名称的价值是巨大的。my.list <- setNames(test.dates, test.names)