在发光应用程序中更改了用户从selectInput输入后删除条件滑块输入

时间:2016-06-30 20:58:57

标签: r user-interface shiny

我有两个不同时间长度的数据集。我希望用户能够根据他们选择的数据集选择要查看的年份范围。目前,我正在使用两个条件语句。到目前为止我所做的问题是,一旦用户更改了他们想要查看的输入/数据集,就会出现两个滑块输入。

sidebarLayout(
    sidebarPanel(
        selectInput("data", "Select what you would like to see", 
                    c("Option 1", "Option 2", Option 3")
                    )

conditionalPanel(
           condition = ("input.data == 'Option 1' || 'Option 2')
           sliderInput(
                       "range", "Range of years:", min = ####, 
                        max = year(Sys.Date()), value = c(1990,                   
                        year(Sys.Date()))
                      ),

conditionalPanel(
           condition = ("input.data == 'Option 3')
           sliderInput(
                       "range", "Range of years:", min = ####, 
                        max = year(Sys.Date()), value = c(1985,                   
                        year(Sys.Date())

有没有办法在用户输入后删除其中一个滑块输入?我尝试过使用条件语句(for& while),但我希望有一种更简单的方法。

谢谢

1 个答案:

答案 0 :(得分:2)

我最终使用了渲染服务器端的renderUI。代码如下所示:

output$ui <- renderUI({
   if(is.null(input$data))
      return()
   switch(input$data, "Option 1" = sliderInput("range", "Range of years:",
          min=1990, max = year(Sys.Date()))
          ,
          input$data, "Option 2" = sliderInput("range", "Range of years:",
          min=1990, max = year(Sys.Date()))
          ,
          input$data, "Option 3" = sliderInput("range", "Range of years:",
          min=1985, max = year(Sys.Date()))
})

这可能是一种更有效和更优雅的方式,但这对我有用。 Here is a link for additional dynamic user interface information.