Updatepickerinput与Shiny中pickerinput的更改

时间:2018-09-07 07:08:47

标签: r shiny

我想用另一个PickerInput中的更改来更新Pickerinput。如何在Shiny的服务器端进行操作?

1 个答案:

答案 0 :(得分:0)

您可以在服务器端使用observeEvent功能来监视pickerInput#1的状态,然后使用updatePickerInput功能来更新pickerInput#2。

请参见下面的代码,该代码采用pickerInput#1中的第一个字母,并相应地选择pickerInput#2中的内容:

library("shiny")
library("shinyWidgets")

ui <- fluidPage(
  tags$h2("Update pickerInput"),

  fluidRow(
    column(
      width = 5, offset = 1,
      pickerInput(
        inputId = "p1",
        label = "Starting Letters",
        choices = LETTERS
      )
    ),
    column(
      width = 5,
      pickerInput(
        inputId = "p2",
        label = "Names of Cars",
        choices = ""
      )
    )
  )
)

server <- function(input, output, session) {
  observeEvent(input$p1, {
    updatePickerInput(session = session, inputId = "p2",
                      choices = grep(paste0("^",input$p1), rownames(mtcars), value = TRUE))

  }, ignoreInit = TRUE)
}

shinyApp(ui = ui, server = server)
}

输出: example