如何在 selectInput R Shiny 中为一长串选项设置值
Posted
技术标签:
【中文标题】如何在 selectInput R Shiny 中为一长串选项设置值【英文标题】:How to Set Values in selectInput R Shiny for a long set of options 【发布时间】: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 应该设置为相应的值。提前致谢!
【问题讨论】:
【参考方案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)
)
)
玩家姓名列表也可以是反应式的,并且可以被其他输入修改。
【讨论】:
以上是关于如何在 selectInput R Shiny 中为一长串选项设置值的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 actionButton 更改 R Shiny 中 selectInput 上的选定值?
从 SelectInput (R Shiny) 中的分组选项列表中获取组标签
如何在 selectInput R Shiny 中为一长串选项设置值