1

When making multiple selections in Shiny selectInput, the values are outputted without comma separation. This causes problems when the outputted values are consist of values with multiple words.

Is there a way to change the value "output" of Shiny's selectInput to be separated by commas?

Here is a MRE:

library(shiny)

ui <- fluidPage(
  
  selectInput(inputId = "input_select", 
              label = "Input", 
              choices = c("John Doe", 
                          "Johnny D Y", 
                          "Jane Doe", 
                          "XYZ"),
              multiple = TRUE
  ),
  textOutput(outputId = "output_text")
  
)

server <- function(session, input, output){
  
  output$output_text <- renderText({
    
    paste(input$input_select)
  })
  
  
}

shinyApp(ui, server)

When selecting the values "John Doe", "Johnny D Y" and "Jane Doe", I want the text output to look like this: "John Doe", "Johnny D Y", "Jane Doe" (a vector with these three names in quotation marks and separated by comma).

How could I achieve this?

Phil.He
  • 144
  • 9

1 Answers1

3

You can use the collapse parameter:

library(shiny)

ui <- fluidPage(
  
  selectInput(inputId = "input_select", 
              label = "Input", 
              choices = c("John Doe", 
                          "Johnny D Y", 
                          "Jane Doe", 
                          "XYZ"),
              multiple = TRUE
  ),
  textOutput(outputId = "output_text")
)

server <- function(session, input, output){
  output$output_text <- renderText({
    paste(dQuote(input$input_select, q = FALSE), collapse = ", ")
  })
}

shinyApp(ui, server)
ismirsehregal
  • 30,045
  • 5
  • 31
  • 78