闪亮:在选择输入

时间:2015-07-31 13:46:50

标签: r date shiny

我有一个数据框,第一列格式为yyyy-mm-dd hh:mm:ss并归类为POSIXct。 dput()数据帧的一小部分:

structure(list(`TIMESTAMP-TS` = structure(c(1432054800, 1432058400, 1432062000, 1432065600), class = c("POSIXct", "POSIXt"), tzone = ""), 
`RECORD-RN` = 4099:4102, `BattV_Min-Volts` = c(12.34, 12.36, 
12.35, 12.35), `ETos-DegC` = c(0.097, 0.047, 0.042, 0.023
), `Rso-DegC` = c(3.436, 3.52, 3.385, 3.053)), .Names = c("TIMESTAMP-TS", "RECORD-RN", "BattV_Min-Volts", "ETos-DegC", "Rso-DegC"), row.names = c(NA, 4L), class = "data.frame")

我想使用此列中的范围来选择其他列中的数据。 dateRangeInput无法使用小时数,我想我会尝试inputSelect。这尤其有效,因为我有多个具有不同时间步长的数据集,即5分钟间隔,1分钟间隔。

这些是我在Shiny ui.R文件中编写的用于选择日期和时间的代码行:

selectInput('starttime','Beginning date and time:', choices = data$'TIMESTAMP-TS', selectize = FALSE, size = 4),

selectInput('finishtime','Ending date and time:', choices = data$'TIMESTAMP-TS', selectize = FALSE, size = 4)

当Shiny运行时,下拉列表显示日期和时间为自1970年以来的总秒数。我认为用data$'TIMESTAMP-TS'包裹as.POSIXct()会将其更改为人类可读的形式,但它没有。

我尝试将数据作为默认类读入,然后在ui.R文件中为Shiny添加as.POSIXct(),但它仍显示为累积秒数。这个实验的一个有趣的副作用是在情节上获得了一种地毯,为小时增加了更多的标签,这很有用,因为我制作的第一个地块没有时间,只有日期。

我应该使用什么来使下拉选项更容易理解?我看到了这个question and answer,但似乎使用selectInput会更容易,因为它使用增量中的时间步长,因为它们出现在数据集中。

1 个答案:

答案 0 :(得分:1)

用这个测试玩具模型:

 selectInput(inputId = "choosevar",
                label = "Choose Cut Variable:",
                choices = as.character(df$`TIMESTAMP-TS`))

请注意,R通常不喜欢变量名称中的减号,因此您需要使用波浪号下的小刻度符号,无论它是什么(后引号?)。

pics or it didn't happen