r语言 - 在时间可视化 + 闪亮中,我可以使用输入变量 input$mytime_window 进行操作吗?



在 R 包 timevis 中,输入值input$mytime_window"将返回一个 2 元素向量,其中包含时间轴中当前可见的最小和最大日期。 我想在最小值上增加五天,并在setWindow()函数中使用结果,该函数本身将成为observeEvent的一部分。然后,时间线视图将理想地跳转到新的日期范围。

在我的实验中,setWindow()将设置一个input$mytime_window[1]值的视图,例如开始日期,然后我可以使用日期字符串或Sys.Date()等函数作为结束日期,并获得预期的结果。但我似乎无法对input$mytime_window值使用运算符或函数。我所有试图找出input$mytime_window值的尝试都显示一个 null 的值。

即使我问的是不可能的事情,我也可能对input$mytime_window的价值及其运作方式感到非常困惑;我想更好地理解这一点。

下面的最小代码:

library(shiny)
library(timevis)
# Minimal example derived from https://daattali.com/shiny/timevis-demo/
data <- data.frame(
id      = 1:4,
content = c("Item one", "Item two",
"Ranged item", "Item four"),
start   = c("2016-01-10", "2016-01-11",
"2016-01-20", "2016-02-14 15:00:00"),
end     = c(NA, NA, "2016-02-04", NA)
)
ui <- fluidPage(
actionButton("action", label = "Action"),
timevisOutput("timeline")
)
server <- function(input, output) {
output$timeline <- renderTimevis({
timevis(data)
})
# Trying to use input$mytime_window as a value in setWindow()
# The code below gives no result
# But replace the line with: 
# setWindow("timeline", input$mytime_window[1], Sys.Date())
# And I get an expected result (just not the one I want)
observeEvent(input$action, {
setWindow("timeline", input$mytime_window[1], input$mytime_window[1]+5)
})
}
shinyApp(ui = ui, server = server)

我还尝试使用包装润滑剂转换输入$mytime_window并将其添加到days(5)。两者都会产生错误消息。

感谢您的任何帮助,是的,这是我的第一篇文章,所以即使我没有得到解决方案,我也会庆祝!

@KeqiangLi提供的评论回答了这个问题。需要帮助的行现在为:

setWindow("timeline", input$timeline_window[1], as.Date(input$timeline_window[1])+5)

最新更新