【发布时间】:2018-09-07 03:30:51
【问题描述】:
我有一个闪亮的应用程序,用于分析 30 年的气候数据。我希望用户能够在 30 年内选择尽可能多的年份来相互叠加。显然,可以使用 checkboxGroupInput,但是,在屏幕上显示 30 个复选框在视觉上并不令人愉悦。
是否有替代方案(例如下拉“多选”)?
【问题讨论】:
我有一个闪亮的应用程序,用于分析 30 年的气候数据。我希望用户能够在 30 年内选择尽可能多的年份来相互叠加。显然,可以使用 checkboxGroupInput,但是,在屏幕上显示 30 个复选框在视觉上并不令人愉悦。
是否有替代方案(例如下拉“多选”)?
【问题讨论】:
简单的替代方案是selectInput 和multiple = TRUE。如果您不介意使用外部包,那么 bwc 的答案会派上用场。请看以下演示:
library(shiny)
library(shinyWidgets)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(selectInput("choiceSelectize", "Choose one or more:", choices = 1:10, multiple = TRUE),
pickerInput("choicePicker", "Choose one or more:", choices = 1:10, multiple = TRUE)),
mainPanel("Plain shiny Select Input:", verbatimTextOutput("outSelectize"),
"ShinyWidgets Picker Input:", verbatimTextOutput("outPicker"))
)
)
server <- function(input, output) {
output$outSelectize <- renderPrint({
input$choiceSelectize
})
output$outPicker <- renderPrint({
input$choicePicker
})
}
shinyApp(ui, server)
【讨论】:
看起来像来自 shinyWidgets 包的 pickerInput() 或 checkboxGroupButtons 可以解决问题。
【讨论】: