Rshiny ConditionalPanel显示两个条件

时间:2019-05-01 22:27:08

标签: r shiny conditional

我刚接触光泽,遇到了其他人都遇到过的问题,但似乎找不到解决方法。我在Rshiny应用程序中的标准面板正在显示我的所有状况。我引用了以下链接,甚至尝试了renderUI解决方案,但都没有运气。这似乎是一个我只是想念的简单问题,但是任何帮助,条件面板的替代解决方案或对问题根源的了解都将不胜感激!

(然后,框中的值将用于更新图形,当我在应用中使用此解决方案时,图形也将不再显示。我只能共享多少其他代码受到限制)

R shiny conditionalPanel displaying both conditions

To add the values in dynamically created textBox in RShiny

Producing dynamic/multiple input boxes to collect data depending on user selection in Shiny R

runApp(list(
  ui = bootstrapPage(
    selectInput("ctype","test:" , c("F", "S"), selected = F),
    conditionalPanel("input.ctype == 'F'",
                     numericInput("comp", "Box 1", value =  100),
                     numericInput("comp1", "Box 2", value =  200),
                     numericInput("comp2", "Box3", value = 300),
                     actionButton("revert", "Back", icon = icon("history"))

    ),
    conditionalPanel("input.ctype == 'S",
                     numericInput("comp3", "Box 4", value = 0))

  ),
  server = function(input, output) {
    output$plot <- renderPlot({ hist(runif(input$n)) })
  }
))

以下是当前输出。我需要的是,当选择“ F”时,只有“ Box 1”,“ Box 2”,“ Box 3”和“ Back”出现在而不是 “ Box 4” 强>。选择“ S”时,仅出现“方框4”。 enter image description here

2 个答案:

答案 0 :(得分:1)

我使用了renderUI选项

runApp(list(
  ui = bootstrapPage(
    selectInput("ctype","test:" , c("F", "S"), selected = F),
    uiOutput("comp")


  ),
  server = function(input, output) {

    output$comp <- renderUI({

      if(input$ctype == "F"){

        conditions <- list( fluidRow(
          column(numericInput("comp", "Box 1", value =  100), width = 2),
          column(numericInput("comp1", "Box 2", value =  200), width = 2),
          column(numericInput("comp2", "Box3", value = 300), width = 2)),
          actionButton("revert", "Back", icon = icon("history")))

      }

      if(input$ctype == "S") {

        conditions <-  numericInput("comp3", "Box 4", value = 0)

      }

      return(conditions)
    })

    output$plot <- renderPlot({ hist(runif(input$n)) })
  }
))


答案 1 :(得分:1)

在第二个conditionalPanel的条件中,您有一个缺少的结束撇号。如果再加回去,它将照原样工作。