如何让Shiny记住来自多个selectInput的各种选择

时间:2018-06-04 13:49:40

标签: shiny

我在Shiny-app下面有2 selectInput()

library(shiny)
shinyApp(
  ui = fluidPage(
    selectInput("variable", "Variable:",
                c("A" = "A",
                  "B" = "B",
                  "C" = "C")),
    uiOutput("moreControls")
  ),
  server = function(input, output) {
    output$moreControls <-  renderUI({
            Choice = input$variable
            if (Choice == 'A') Result = c('X1', 'X2', 'X3')
            if (Choice == 'B') Result = c('Y1', 'Y2', 'Y3')
            if (Choice == 'C') Result = c('Z1', 'Z2', 'Z3')

            selectInput("variable1", "Variable-1:", Result)
      })
  }
)

现在让我们说,当variable = 'A'用户选择'X2'时。现在,用户转到variable = 'C'从那里获取一个值,假设它是'Z3'。在这里,问题是当用户从'A'移动到'C'时,他的第一选择'X2'不会保留用于进一步的下游计算。

如何让Shiny记住用户从selectInput的其他元素中选择了什么,并集体传递所有这些选择以进行下游计算?所有计算和选择都限制在一个会话中。

1 个答案:

答案 0 :(得分:-1)

您应该考虑为您的选择输入对象实施modular shiny code

在您编写完模块后,只要您每次都提供一个唯一的ID,就可以多次调用它。