首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R Shiny checkboxGroupInput -通过单击选中所有复选框

R Shiny checkboxGroupInput -通过单击选中所有复选框
EN

Stack Overflow用户
提问于 2015-03-03 18:40:15
回答 2查看 22.2K关注 0票数 12

我有一个包含checkboxGroupInput的R闪亮应用程序,我正在尝试使用updateCheckboxGroupInput函数创建一个“全选”按钮。你可以看到下面的完整代码,但基本上我是这样定义cb组的:

代码语言:javascript
复制
checkboxGroupInput("campaigns","Choose campaign(s):",campaigns_list)

然后,在单击按钮时,调用函数:

代码语言:javascript
复制
updateCheckboxGroupInput(session,"campaigns","Choose campaign(s):",choices=campaigns_list,selected=campaigns_list)

我有一个指示,该函数运行了,但它所做的实际上是UNselecting复选框。顺便说一句,当我在定义cbGroupInput时选择了,它确实起作用了,但不是在函数上。

谢谢!

这是我的服务器。R:

代码语言:javascript
复制
library(shiny)
source('usefulFunctions.R')
shinyServer(function(input, output, session) {

  output$cascading <- renderUI({
    provider_id <- input$provider
    if (provider_id == "") return(NULL)
    campaigns_list <<- t(getCampaigns(provider_id))
    tagList(
      checkboxGroupInput("campaigns","Choose campaign(s):", 
                         choices = campaigns_list, selected = campaigns_list),
      actionLink("selectall","Select All")
      )
  })

  observe({
    if(is.null(input$selectall)) return(NULL)
    if (input$selectall > 0)
    {
      print(campaigns_list)
      updateCheckboxGroupInput(session,"campaigns","Choose campaign(s):",choices=campaigns_list,selected=campaigns_list)
    }
    })


})
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-03 19:04:28

我还在这里添加了选择和取消选择选项,方法是检查按钮或链接是否可以被2整除

代码语言:javascript
复制
#rm(list = ls())
library(shiny)
campaigns_list <- letters[1:10]

ui =fluidPage(
  checkboxGroupInput("campaigns","Choose campaign(s):",campaigns_list),
  actionLink("selectall","Select All") 
)
server = function(input, output, session) {

  observe({
    if(input$selectall == 0) return(NULL) 
    else if (input$selectall%%2 == 0)
    {
      updateCheckboxGroupInput(session,"campaigns","Choose campaign(s):",choices=campaigns_list)
    }
    else
    {
      updateCheckboxGroupInput(session,"campaigns","Choose campaign(s):",choices=campaigns_list,selected=campaigns_list)
    }
  })
}
runApp(list(ui = ui, server = server))
票数 21
EN

Stack Overflow用户

发布于 2015-03-03 19:00:57

如果campaigns_list是一个列表,可能是因为您指定的是所有选项的列表,而不是应该在updateCheckboxGroupInputselected参数中选择的框的值。

尝试用selected=unlist(campaigns_list)替换selected=campaigns_list

下面是一个使用虚拟名称的示例:

代码语言:javascript
复制
library(shiny)
server<-function(input, output,session) {
  observe({
    if(input$selectall == 0) return(NULL)
    else if (input$selectall > 0)
    {
      variables<-list("Cylinders" = "cyl","Transmission" = "am","Gears" = "gear")
      updateCheckboxGroupInput(session,"variable","Variable:",choices=variables,selected=unlist(variables))
    }
  })
}

ui <- shinyUI(fluidPage(        
    checkboxGroupInput("variable", "Variable:",list("Cylinders" = "cyl","Transmission" = "am","Gears" = "gear")),
    actionButton("selectall", "Select All")
))
shinyApp(ui = ui, server = server)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28829682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档