如何调整R Shiny中selectInput多选时renderText的输出拼接格式
Fixing Multi-Select Output Format in Shiny
The issue here is that when selectInput has multiple = TRUE, input$var becomes a vector of selected values instead of a single string. The original paste() call is recycling the prefix "You have selected" for every element in the vector, which causes the repeated text.
To fix this, you just need to first collapse all selected values into a single space-separated string, then combine it with the prefix once. Here's how to adjust your server logic:
Modified Server Logic
server <- function(input, output) { output$selected_var <- renderText({ # Collapse multiple selected values into one space-separated string selected_values <- paste(input$var, collapse = " ") # Combine with the prefix only once paste("You have selected", selected_values) }) }
Full Updated Shiny App
library(shiny) ui <- fluidPage( titlePanel("censusVis"), sidebarLayout( sidebarPanel( helpText("Create demographic maps with information from the 2010 US Census."), selectInput("var", label = "Choose a variable to display", choices = c("Percent White", "Percent Black", "Percent Hispanic", "Percent Asian"), selected = "Percent White", multiple = T), sliderInput("range", label = "Range of interest:", min = 0, max = 100, value = c(0, 100)) ), mainPanel(textOutput("selected_var")) ) ) server <- function(input, output) { output$selected_var <- renderText({ selected_values <- paste(input$var, collapse = " ") paste("You have selected", selected_values) }) } shinyApp(ui = ui, server = server)
Now when you select multiple variables, the output will look like You have selected Percent White Percent Hispanic instead of repeating the prefix for each selection.
内容的提问来源于stack exchange,提问作者ZenMac
相关产品推荐
相关产品推荐

