Настройте conditionalPanel для отображения sliderInput

Друзья могут помочь мне сделать мою условную панель функциональной. Я создал условную панель, но не знаю, как ее настроить на сервере. Когда я нажимаю опцию «Нет», я хочу, чтобы отображался sliderInput («Slider2»). Исполняемый код ниже. Спасибо!

library(shiny)

ui <- shiny::navbarPage(
  title = div(tags$img(src="", align="right", height='50px')),
              sidebarLayout(
               sidebarPanel(
                 sliderInput("Slider1",
                             "Number of bins:",
                             min = 1,
                             max = 50,
                             value = 30)
               ),

               sidebarLayout(
                 sidebarPanel(
                   radioButtons("filter1","", choices = list("Yes" = 1,"No " = 2),selected = 1),
                   conditionalPanel(
                      "input.filter1 == 'No'",

                    sliderInput("Slider2",
                               "Number of bins:",
                               min = 1,
                               max = 20,
                               value = 30)),
                 ),
                 mainPanel(
                   plotOutput("distPlot1")
                 ))))


server <- function(input, output) {

  output$distPlot1 <- renderPlot({
    # generate bins based on input$bins from ui.R
    x    <- faithful[, 2]
    bins <- seq(min(x), max(x), length.out = input$Slider1 + 1)


    # draw the histogram with the specified number of bins
    hist(x, breaks = bins, col = 'darkgray', border = 'white')
  })
}

# Run the application 
shinyApp(ui = ui, server = server)


person Jose    schedule 14.05.2020    source источник


Ответы (2)


Когда ты делаешь

radioButtons("filter1", "", choices = list("Yes" = 1,"No " = 2)

значения переключателей - "1" и "2", а "Yes" и "No" - метки переключателей. Итак, ваше состояние должно быть "input.filter1 == '2'".

person Stéphane Laurent    schedule 14.05.2020
comment
Может ли кто-нибудь помочь мне с этим вопросом: stackoverflow.com/questions/62611894/ - person Jose; 27.06.2020

Ваше условие должно быть "input.filter1 == 2", а не "input.filter1 == 'No'".
"No" - это имя элемента, а 2 - значение (которое оценивается).

Он будет работать с этой модификацией.

person Jrm_FRL    schedule 14.05.2020