如何在flexdashboard中使用updateSelectInput?

时间:2017-08-23 12:19:28

标签: r shiny flexdashboard

我想根据另一个输入框更改输入框的值。

使用R Shiny,有一种方法可用:updateSelectInput。但我不确定如何在flexdashboard中使用它。

1 个答案:

答案 0 :(得分:0)

这很晚了,但也很有可能。

如果这是您的第一个selectInput()

raw_data <- mpg

selectInput(
  "manufacturer",
  label = "Select manufacturer",
  choices = c("All", sort(unique(raw_data$manufacturer)))
)

您可以尝试这些方法之一。总体来说,这是更少的代码:

renderUI({

  df <-
    raw_data %>%
    filter(
      manufacturer == input$manufacturer |
        input$manufacturer == "All"
    )

  selectInput(
    "model",
    label = "Select model",
    choices = c("All", sort(unique(df$model)))
  )

})

observeEvent()。我认为这一功能节省了性能,因为它仅查看一个输入,但这并没有太大的区别。

selectInput(
    "model",
    label = "Select model",
    choices = c("All", sort(unique(raw_data$model)))
  )


observeEvent(input$manufacturer, {
  df <-
    raw_data %>%
    filter(
      manufacturer == input$manufacturer |
        input$manufacturer == "All"
    )

  updateSelectInput(
    session = session,
    inputId = "model",
    choices = c("All", sort(unique(df$model)))
  )
})