代码之家  ›  专栏  ›  技术社区  ›  shea

闪亮:使日期和时间按预期显示在选择输入中

  •  4
  • shea  · 技术社区  · 9 年前

    我有一个数据帧,第一列格式为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() 会将其更改为人类可读的形式,但没有。

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

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

    1 回复  |  直到 9 年前
        1
  •  1
  •   user3652621    9 年前

    用这个测试了一个玩具模型:

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

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

    pics or it didn't happen