【问题标题】:Display all values in a Shiny selectInput box (1000+)在闪亮的 selectInput 框中显示所有值 (1000+)
【发布时间】:2017-04-04 07:17:18
【问题描述】:

我正在开发一个 Shiny 应用程序,我希望允许用户从更长的基因列表(约 1800 个)中进行选择,然后显示所选基因的相应图表。我的问题是我无法让 Shiny 在 selectInput 框的下拉菜单中显示可供选择的整个基因列表,似乎只显示了前 1000 个左右。

然后我发现了一个使用服务器端选择的有前途的解决方案,当用户开始在选择框中输入时,所有可用的选项都会显示出来。但是,当用户不输入时,下拉菜单仍然不会显示超过前 1000 个基因,这可能表明没有更多可用选项。

出于说明目的,我使用不同的数据集(1396 个机场代码)重新创建了问题:

library(shiny)
library(nycflights13)

ui <- fluidPage(
  wellPanel(
    fluidRow(
      column(12, offset = 0,
        titlePanel("Look up airports"))),
    fluidRow(
      column(3, offset = 0,
        selectizeInput(inputId = "airportCode", label = "", choices = NULL,
          options = list(placeholder = "Type airport code"))))
  )
)

server <- function(input, output, session) {
  updateSelectizeInput(session, "airportCode",
    choices = as.vector(airports$faa), server = TRUE)
}

shinyApp(ui = ui, server = server)

当您不输入选择框时,下拉菜单中显示的最后一个机场代码仅为“PAM”。然而,当您开始键入时,您可以一直到最后一个“ZYP”,我认为这对用户来说相当混乱。

如果可行的话,最好将所有值都显示在下拉菜单中。否则根本没有列出,只有在您开始输入时才会显示。

【问题讨论】:

    标签: r drop-down-menu shiny


    【解决方案1】:

    https://github.com/rstudio/shiny/issues/412

    您可以像这样更改最大选项数:

    selectizeInput(inputId = "airportCode", label = "", choices = NULL,
      options = list(placeholder = "Type airport code",
        maxOptions = 2000)
      )
    

    【讨论】:

    • 谢谢,这比我希望的要容易得多;)
    • 非常感谢您的回答。
    猜你喜欢
    • 2018-07-07
    • 2018-08-24
    • 2019-08-19
    • 2015-05-07
    • 2017-05-09
    • 2018-07-07
    • 2018-07-09
    • 2018-10-17
    • 2018-04-20
    相关资源
    最近更新 更多