2015-06-19 7 views
3

В моем случае параметры являются состояниями, а вместо группы отметок у меня есть dropInput. Я запускаю логику с помощью одного флажка в пользовательском интерфейсе. Теперь я хочу, чтобы каждый раз, когда я нажимаю кнопку, все мои состояния должны быть предварительно выбраны в раскрывающемся списке, а пользовательский ввод необходим в если флажок не установлен. Но, к сожалению, независимо от того, нажал ли пользователь флажок или нет, выход всегда выбирается пользователем в раскрывающемся списке, то есть «все состояния» по умолчанию не заполняются в качестве предварительных выборов.Отобразить все значения параметров, используя selectInput() в R Shiny

Server.R - 
    observe({ 
    if(input$national>0) 
    {if (input$national %% 2 == 0){ 
     updateSelectInput(session, 
         "State",label = h4("Select any state"),        
         choices = list("NSW" = "NSW","Victoria" = "Victoria","SA" = "SA","Tasmania" = "Tasmania"),                                 
         selected = c("NSW","Victoria","SA","Tasmania"),multiple = TRUE               
         )} 
     else 
     {updateSelectInput(session, 
         "State",         
         label = h4("Select any state"),        
         choices = list("NSW" = "NSW","Victoria" = "Victoria","SA" = "SA","Tasmania" = "Tasmania"),                                 
         selected = c(),multiple = TRUE               
         ) 
    }} 
}) 

Любая помощь очень ценится и благодарит заранее.

ответ

2

добавить кнопку в вашем ui.r

actionButton("selectall", label="Select/Deselect all") 

в вашем server.r позволяют selectall изменить ваш вход селектора (здесь я называю это show_vars).

observe({ 
    if (input$selectall > 0) { 
    if (input$selectall %% 2 == 0){ 
     updateCheckboxGroupInput(session=session, 
           inputId="show_vars", 
           choices = list("carat" = "carat", 
               "cut" = "cut", 
               "color" = "color", 
               "clarity"= "clarity", 
               "depth" = "depth", 
               "table" = "table", 
               "price" = "price", 
               "x" = "x", 
               "y" = "y", 
               "z" = "z"), 
           selected = c(names(diamonds))) 

    } else { 
     updateCheckboxGroupInput(session=session, 
           inputId="show_vars", 
           choices = list("carat" = "carat", 
               "cut" = "cut", 
               "color" = "color", 
               "clarity"= "clarity", 
               "depth" = "depth", 
               "table" = "table", 
               "price" = "price", 
               "x" = "x", 
               "y" = "y", 
               "z" = "z"), 
           selected = c()) 

    }} 
}) 

Мод 2 (%% 2) делает работу каждый второй щелчок, чтобы выбрать все, в противном случае по умолчанию для второй ветви, где вы можете заранее, что вы не хотите (или ничего в моем случае).

+0

Я взял это сам из другого ответа здесь давно, но не могу найти его прямо сейчас. –

+0

Большое спасибо за помощь Сербан. Я добился определенного прогресса, но мне нужна дополнительная помощь. Пожалуйста, посмотрите на редактирование сообщения. –