如何在闪亮的应用程序的两个日期时间之间选择数据?

时间:2018-09-11 10:01:48

标签: r shiny

我正在尝试使用这样的时间戳 factor 格式来为我的数据制作闪亮的应用程序:“ 2017-03-07 06:00:00”,“ 2017-03-07 06:00” :00“。 它们是小时数据,但是整个数据中可能缺少某些日期或时间。我希望能够在两个任意日期时间之间选择数据。这是我到目前为止所做的:

      sliderInput(inputId = "slider_datetime", 
                 label = "Date & time:", 
                  min = as.POSIXct("2017-03-03 16:00:00", "UTC"), max = as.POSIXct("2017-12-01 07:00:00", "UTC"),
                 value= as.POSIXct("2017-03-03 16:00:00", "UTC")),

#Create the scatterplot object the plotOutput function is expecting

    output$scatterplot <- renderPlot({
       Data<- Data%>%
        mutate(Timestamp = as.POSIXct(Timestamp))%>%
        filter(Timestamp %in% input$slider_datetime)

    ggplot(data[data$ID %in% input$z,],  aes_string(x=input$x, y=input$y))+geom_point()
    }) 

但是,sliderInput不是在两个时间戳之间进行选择的正确选择,而且应用运行速度如此之慢。我不知道有没有类似datetimeRangeInput的东西? 如果有人可以帮助我,我会很感激

Pegah

1 个答案:

答案 0 :(得分:0)

如果您尝试在2个不同的日期时间之间进行选择,则不应将您的liderInput修改为如下所示

sliderInput(inputId = "slider_datetime", 
                 label = "Date & time:", 
                  min = as.POSIXct("2017-03-03 16:00:00", "UTC"), max = 
                        as.POSIXct("2017-12-01 07:00:00", "UTC"),
                 value= c(as.POSIXct("2017-03-03 16:00:00", "UTC"),
                        as.POSIXct("2017-03-10 16:00:00", "UTC"))
                      ) 

此外,每次更改输入时,调用as.POSIXct来转换Timestamp列时,应用程序运行时间可能会很慢。我不确定这是否是原因,但是如果可行,您可以尝试以下方法! :)


global.R

Data <- Data %>% mutate(Timestamp = as.POSIXct(Timestamp))      

ui.R

sliderInput(inputId = "slider_datetime", 
             label = "Date & time:", 
              min = min(Data$Timestamp), max = max(Data$Timestamp),
             value= c("2017-03-03 16:00:00","2017-03-10 16:00:00")
                  )

其他选项之一可能是分别使用dateInput和slideInput作为日期和时间,然后将2个结果串联起来以过滤数据。

我希望这会有所帮助!