В пакете timevis R входное значение 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) с пакетом lubridate.Оба выдают сообщения об ошибках.
Спасибо за любую помощь, и да, это мой первый пост, поэтому я буду отмечать это, даже если у меня не будет решения!