我想根据另一个输入框更改输入框的值。
使用R Shiny,有一种方法可用:updateSelectInput。但我不确定如何在flexdashboard中使用它。
答案 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)))
)
})