小编The*_*old的帖子

如何在 R-Shiny 中连接 dateRangeInput 和 sliderInput

在我的 Shiny 应用程序中,我必须按时间对数据帧进行子集化。对我来说最方便的小部件是 sliderInput,但我也希望允许从日历中选择特定日期,就像我对 dateRangeInput 所做的那样,因为数据集跨越多年的日常数据。我尝试链接它们两个,在 dateRange 更改时更新滑块,反之亦然,使用两个单独的 renderUI() 。一般来说,这工作得很好,但在某些情况下,我会陷入无限循环,其中 slider 和 rangeInput 不断地彼此无效。无限循环仅在通过滑块进行更改后才会触发。

到目前为止我的方法如下:

  output$dateRangeSliderUI <- renderUI({
    date_range_input <- input$dateRangeInput
    data <- isolate(dataset())
    start_date <- default_start
    end_date <- default_end
    
    if (is.null(date_range_input)){
      range_slider <- c(start_date, end_date)
    } else {
      range_slider <- date_range_input
    }
    
    sliderInput("dateRangeSlider",
                label = "Date Range:",
                value = range_slider,
                min = min(data$Date),
                max = max(data$Date),
                step = 1,
                timeFormat = "%F")
  })
  
  output$dateRangeInputUI <- renderUI({  
    date_range_slider <- input$dateRangeSlider
    data <- isolate(dataset$regressions)
    start_date <- default_start
    end_date <- default_end
    
    if …
Run Code Online (Sandbox Code Playgroud)

r shiny shiny-reactivity

1
推荐指数
1
解决办法
2137
查看次数

标签 统计

r ×1

shiny ×1

shiny-reactivity ×1