You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R Shiny的selectInput组件中默认选中多个值

Shiny selectInput 默认多选的实现方法

问题原因

你的代码失效是因为selected参数传入了不在可选范围内的值:你设置的choices仅包含nba第一列的球员名,但你写的c(nba[1,1],nba[1,2])第二个值是第一行第二列的球队编码,不属于可选列表,因此默认选中规则不生效。
若要默认选中前2个可选值,直接取choices对应的前两个元素即可。

修正后代码

library(shiny)
library(DT)

nba <- data.frame(
  player = c("James", "Durant", "Curry", "Harden", "Paul", "Wade"), 
  team = c("CLEOH", "GSWOAK", "GSWOAK", "HOUTX", "HOUTX", "CLEOH"),
  day1points = c("25","23","30","41","26","20"), 
  day2points = c("24","25","33","45","26","23"),
  rating=c("1","2","3","4","5","1")
)

ui <- navbarPage(
  title="SADDAS",
  sidebarLayout(
    sidebarPanel(uiOutput("var1_select")),
    mainPanel(tableOutput("reportOutput"))
  ))

server <- function(input, output) {
  output$var1_select <- renderUI({
    selectInput(
      "ind_var_select",
      "Select Names", 
      choices = as.character(nba[,1] ),
      multiple = TRUE,
      # 仅修改selected参数取值即可
      selected = as.character(nba[1:2,1])
    )
  })
  
  output$reportOutput = renderTable({
    # Filter it
    subset(nba[,1:3], player %in% input$ind_var_select)
  }, options = list(scrollX = TRUE))
}

shinyApp(ui, server)

补充说明

当selectInput设置multiple = TRUE时,selected参数支持传入任意长度的向量,只要向量内的元素都属于choices的取值范围、格式和choices元素格式一致,就能实现默认选中多个值的效果。

内容的提问来源于stack exchange,提问作者manu p

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 04:57:02