Dplyr过滤器,选择输入,选择Shiny的所有条件

时间:2018-05-04 19:33:04

标签: r filter shiny dplyr

我将市场列下的每个唯一值保存到变量中,该变量作为选项保存到下拉菜单中。当观众选择闪亮的市场时,他/她将看到过滤到市场的数据。我正在尝试将一个空白选项合并到我的dplyr表达式中,以允许查看者在没有任何市场过滤器的情况下查看整个数据集。然而,我构建我的闪亮应用程序的方式,似乎我需要选择一个市场才能正常工作。

我很好奇是否有更简单的方法来添加空白选项,这样如果观众根本不想按市场过滤,它会显示整个df?

下面的代码显示了我到目前为止所拥有的内容。

market_choices <- c("north","south","east","west")

selectInput(inputId = "mkt", 
            label = "Select Market", 
            choices = market_choices, 
            selected = "east"))

  test <- reactive({df %>% filter(Market == input$mkt)})

1 个答案:

答案 0 :(得分:2)

您可以在all中包含market_choices选项,然后将过滤器表达式放在条件语句中:

market_choices <- c("north","south","east","west", 'all')
...
test <- reactive({if(input$mkt == 'all') {
                      df
                  } else {
                      df %>% filter(Market == input$mkt)
                  }})