2015-06-19 161 views
3

在我的情況下,選項是狀態,而不是一組複選框,我有一個selectInput下拉菜單。我通過UI中的單個複選框來觸發邏輯。現在,我想要的是,每次單擊該框時,應該在下拉列表中預先選擇所有狀態,並且需要用戶輸入複選框未被點擊的情況。 但不幸的是,無論用戶是否點擊了複選框,輸出始終是用戶在下拉列表中選擇的內容,即默認的「所有狀態」未被填充爲預選。使用R中的selectInput()顯示所有選項值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

非常感謝您的幫助Serban。我取得了一些進展,但需要更多的幫助。請看看帖子編輯。 –

相關問題