R 为什么“闪亮复选框”列会添加多个条目

R 为什么“闪亮复选框”列会添加多个条目,r,shiny,R,Shiny,我希望在Shiny中有两个复选框列,带有all/none按钮。下面的示例似乎有效,但是当我打印选定框的值时,第二列中的值会重复 例如,在第1列中选择爱达荷州和伊利诺伊州,在第2列中选择密苏里州。结果是: 密苏里州爱达荷州、密苏里州伊利诺伊州,密苏里州重复出现,并非全部用逗号分隔 为什么会这样 我如何得到一个用逗号分隔的状态向量而不重复 R脚本 library(shiny) library(shinyWidgets) library(dplyr) df <- tibble( state

我希望在Shiny中有两个复选框列,带有all/none按钮。下面的示例似乎有效,但是当我打印选定框的值时,第二列中的值会重复

例如,在第1列中选择爱达荷州和伊利诺伊州,在第2列中选择密苏里州。结果是:
密苏里州爱达荷州、密苏里州伊利诺伊州
,密苏里州重复出现,并非全部用逗号分隔

为什么会这样

我如何得到一个用逗号分隔的状态向量而不重复

R脚本

library(shiny)
library(shinyWidgets)
library(dplyr)

df <- tibble(
  state = c("Alabama", "Alaska", "Arizona", "Arkansas",
            "California", "Colorado", "Connecticut", "Delaware", "Florida",
            "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa",
            "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts",
            "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana",
            "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico",
            "New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma",
            "Oregon", "Pennsylvania", "Rhode Island", "South Carolina", "South Dakota",
            "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington",
            "West Virginia", "Wisconsin", "Wyoming")
)

ui <- fluidPage(
 
  wellPanel(
    checkboxInput('all_none', 'All/None'),
    tags$label("Choose :"),
    fluidRow(
      column(
        width = 4,
        checkboxGroupInput(
          inputId = "checka",
          label = NULL,
          choices = df$state[1:13]
        )
      ),
      
      column(
        width = 4,
        checkboxGroupInput(
          inputId = "checkb",
          label = NULL,
          choices = df$state[14:25]
        )
      )
    )
  ),
  textOutput("selected")
)

server <- function(input, output, session) {
  observe({
    updateCheckboxGroupInput(
      session, 'checka', choices = df$state[1:13],
      selected = if (input$all_none == TRUE) df$state
    )
  })
  observe({
    updateCheckboxGroupInput(
      session, 'checkb', choices = df$state[14:25],
      selected = if (input$all_none == TRUE) df$state
    )
  })
  
  output$selected <- renderText({
    paste(input$checka, input$checkb, collapse = ", ")
  })
}

shinyApp(ui, server)
库(闪亮)
图书馆(shinyWidgets)
图书馆(dplyr)

df代码工作正常,但是,当任何输入的长度超过1时,如何使用
粘贴来显示结果是不正确的

library(shiny)

output$selected <- renderText({
    paste(c(input$checka, input$checkb), collapse = ", ")
  })

我道歉。谢谢你的提醒!
paste('a', 'b', collapse = ',') #works as expected
#[1] "a b"

paste('a', c('b','c'), collapse = ',') #doesn't work
#[1] "a b,a c"

paste(c('a', c('b','c')), collapse = ',') #works as expected
#[1] "a,b,c"