Вам нужно вызывать реактивные функции без аргументов, т.е. MinZeitSubset()
, а не MinZeitSubset
.Поэтому изменение renderUI
на
output$Slider <- renderUI({dateRangeInput(inputId = "daterange",
label = "Zeitabschnitt",
start = MinZeitSubset(),
end = MaxZeitSubset(),
min = MinZeitSubset(),
max = MaxZeitSubset(),
autoclose = TRUE)
должно работать как MinZeitSubset
, а MaxZeitSubset
- это функции.
Когда я запускаю ваш код, я получаю ошибку, что Zaehlpunkt
отсутствовал в подмножестве в MaxZeitSubset
.Использование ID
вместо этого заставляет все работать:
library("shiny")
Dates = as.POSIXct(c("2018-09-27 23:00:00","2018-09-28 23:00:00","2018-09-29 23:00:00","2018-09-30 23:00:00","2018-10-01 23:00:00"))
ID = factor(c("2090493005FT", "00209049300S", "0209049300SE", "0209049300SE", "00020904930SE"))
df <- data.frame(ID = ID,Time = Dates)
ui <- fluidPage(
fluidRow(
column(width = 12, offset = 1,
selectInput("select", label = h3("Zaehlpunkt"),
choices = levels(df$ID),
selected = 1, multiple = TRUE
)
)
),
uiOutput("Slider")
)
server <- function(input, output, session) {
MinZeitSubset <- reactive({
ds <- subset(df,ID == input$select)
MinZeit <- min(df$Time)
return(MinZeit)
})
MaxZeitSubset <- reactive({
ds<- subset(df, ID == input$select)
MaxZeit <- max(df$TIme)
return(MaxZeit)
})
output$Slider<-renderUI({dateRangeInput(inputId = "daterange",
label = "Zeitabschnitt",
start = MinZeitSubset(),
end = MaxZeitSubset(),
min = MinZeitSubset(),
max = MaxZeitSubset(),
autoclose = TRUE
)
})
}
shinyApp(ui,server)