条件面板之间的依赖性有光泽

时间:2014-07-27 20:57:37

标签: r shiny

我正在尝试在下面的应用程序中的列表中选择一个值,在面板中我可以在选择列表时看到不同的元素,但双重选择的输出不起作用

ui.R

library(shiny)
sampList <- list(1:3, 1:4, 1:6) 

shinyUI(fluidPage(
  headerPanel('Choose methods to compare'),
sidebarPanel(
         wellPanel(
        selectInput(
          "method1", "Method 1",
        c(Method1 = "method1",
          Method2 = "method2",
          Method3 = "method3"
          )),

        conditionalPanel(
           condition = "input.method1 == 'method1'",
                 selectInput(
                  "member1", "Member",
                  sampList[[1]] )

              ),
     conditionalPanel(
           condition = "input.method1 == 'method2'",
                 selectInput(
                  "member1", "Member",
                  sampList[[2]] )
           ),

          conditionalPanel(
           condition = "input.method1 == 'method3'",
                 selectInput(
                  "member1", "Member",
                  sampList[[3]] )

              )    ),
    mainPanel(
       textOutput('table')

            )
)
)
)

server.R

library(shiny)

shinyServer(function(input, output, session) {


    output$table <- renderText({

    c(input$method1, input$member1)
  })




})

在这个例子中,当我选择“方法1”时,我看到正确的向量(1:3),如果我选择一个数字,我会看到正确的输出(如果有人运行应用程序则打印输出),但是如果我选择其他“方法”,矢量内的选择是不打印的,有什么猜测吗?

1 个答案:

答案 0 :(得分:0)

StéphaneLaurent在2004年回答了这个问题 https://groups.google.com/forum/#!forum/shiny-discuss

你可以叫他们method1_member, method2_member, ...... 然后你可以通过input[[paste0(input$method1, "_member")]]

来实现它