【问题标题】:How to Set Values in selectInput R Shiny for a long set of options如何在 selectInput R Shiny 中为一长串选项设置值
【发布时间】:2020-10-11 13:52:58
【问题描述】:

我正在创建一个 R Shiny 应用程序,其中有一个非常长的 selectInput 选项列表。根据您选择的选项,该值将发生变化。我知道,对于一小部分选项,您可以自己在服务器函数中设置值,如下所示:

server <- function(input, output) {
  output$graph <- renderPlot({
    player <- switch(input$var, 
                   "LeBron James" = 23,
                   "Kobe Bryant" = 24,
                   "DeMar DeRozan" = 10,
                   "Kyle Lowry" = 7)
    plotGraph(player)

  })
}

但是我的列表至少有 100 个选项,并且为所有 100 个选项设置这样的值肯定不干净也不高效。有没有办法根据选择的选项设置值而无需手动设置?

下面是我的 ui 函数中的代码

ui <- fluidPage(
    titlePanel(h1("Fantasy Dashboard")),
    
    sidebarLayout(
        sidebarPanel(h2("Player Name Goes Here"),
            selectInput("playername", 
                        label = "Choose a player",
                        choices = player_choices,
                        selected = NULL),
        ),
        

        mainPanel(plotOutput("graph"))
        
    )
)

选择将存储在 player_choices 中。这些选择是从 txt 文件中读取的。并且根据选择的选项,变量 player 应该设置为相应的值。提前致谢!

【问题讨论】:

    标签: r shiny shiny-server shinyapps selectinput


    【解决方案1】:

    试试:

    library(shiny)
    
    playernames <- list("Smith","Johnston","Andrew")
    
    shinyApp(
      ui = fluidPage(
        uiOutput("selectname"),
        textOutput("result")
      ),
      server = function(input, output) {
        output$selectname <- renderUI( {
          selectInput("playername", "Choose player",playernames)})
        output$result <- renderText({
          paste("You chose", input$playername)
        })
      }
    )
    

    玩家姓名列表也可以是反应式的,并且可以被其他输入修改。

    【讨论】:

      猜你喜欢
      • 2017-12-02
      • 2015-09-05
      • 2021-01-25
      • 2017-10-24
      • 2021-10-22
      • 2017-01-04
      • 2018-06-14
      • 1970-01-01
      • 2021-05-17
      相关资源
      最近更新 更多