Rshiny ConditionalPanel отображает оба условия - PullRequest
1 голос
/ 02 мая 2019

Я довольно новичок в блеске и у меня есть проблема, с которой я сталкивался у других, но я не могу найти решение.Моя условная панель в приложении Rshiny отображает все мои состояния.Я ссылался на следующие ссылки, даже пробовал решение renderUI, но мне не повезло.Это кажется простой проблемой, которую я просто упускаю, но любая помощь, альтернативное решение для условной панели или понимание того, где проблема, будет высоко ценится!

(Значения в полях затем используются для обновленияграфик, и когда я использую это решение в своем приложении, графики также больше не отображаются. Я ограничен в количестве другого кода, которым я могу поделиться)

R блестящая условная панель, отображающая оба условия

Добавление значений в динамически создаваемый текстовый блок в RShiny

Создание динамических / нескольких полей ввода для сбора данных в зависимости от выбора пользователя в 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» отображались только «Ящик 1», «Ящик 2», «Ящик 3» и «Назад» и , а не «Ящик 4» ,Когда выбрано «S», появляется только «Ящик 4».enter image description here

Ответы [ 2 ]

1 голос
/ 23 июля 2019

У вас отсутствует закрывающий апостроф в условии для вашей второй условной панели. Если вы добавите это обратно, оно будет работать как написано.

1 голос
/ 02 мая 2019

Я использовал опцию 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)) })
  }
))


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...