如何在Shiny的SelectInput组件中添加“All(全部)”选项
实现方案
你可以直接拼接selectInput的choices参数取值完成新增全选选项的需求,为了避免原始数据中存在重复的学生姓名,推荐搭配unique()方法去重,修改后的UI代码如下:
ui <- fluidPage( selectInput("alumnos", "Selecciona a un alumno:", choices = c("All", unique(asistencias$Alumno)) ) )
如果要给用户显示中文的「全部」选项,只需要调整choices第一个元素的展示名即可:
choices = c("全部" = "All", unique(asistencias$Alumno))
后续在server端处理筛选逻辑时,需要新增全选分支的判断,参考代码:
filtered_asistencias <- reactive({ if (input$alumnos == "All") { # 选中全选时返回全量数据 asistencias } else { # 选中单个学生时过滤对应数据 asistencias[asistencias$Alumno == input$alumnos, ] } })
内容的提问来源于stack exchange,提问作者Jorge Hernández
相关产品推荐
相关产品推荐

