动态更改下一个输入的数据

change data for next input dynamically

我有两个 select 输入 UI.R 图书馆(闪亮)

ContextElements = c("choice1", "choice2", "choice3")
shinyUI(pageWithSidebar(

headerPanel(""),

sidebarPanel(
  h4("test for selectize input"),

 selectizeInput(inputId = "firstAxe", label = h4("First Axe"),  
               choices=ContextElements, selected = NULL, multiple = FALSE,
               options = NULL),
 hr(),

 selectizeInput(inputId = "twoAxe", label = h4("Second Axe"),  
               choices=NULL, selected = NULL, multiple = FALSE,
               options = NULL)
),
mainPanel(
  )
))

我希望下一个 selectizeinput 选项 ("twoAxe") 动态填充第一个选项的剩余选项,这意味着如果我选择第一个选项,如果第一个选项,第二个选择是 choice2 和 choice3

谢谢

您可以在 server.r 中使用 updateSelectizeInput 执行此操作。让我们假设 ContextElements 对服务器可用 - 在 global.r 中定义或在 server.rui.r 中定义。那么这应该有效:

observe({

    input$firstAxe   # makes the second selectize change when the first one does

    updateSelectizeInput({session, inputId="twoAxe",
         choices=as.list( ContextElements[!ContextElements %in% input$firstAxe] )  })
})

当您在 firstAxe 中更改您的选择时,您应该会看到 twoAxe 中的选择响应。