R Shiny - 如何在 selectInput 中显示选择标签
Posted
技术标签:
【中文标题】R Shiny - 如何在 selectInput 中显示选择标签【英文标题】:R Shiny - how to display choice label in selectInput 【发布时间】:2018-06-14 20:19:38 【问题描述】:我定义了一个 selectInput 如下。我想访问每个选项的标签,并将其呈现在主面板上。
如果用户选择“Sugar sweetened bev.”,我想在主面板上呈现如下内容:
“你选择了 Sugar sweetened bev。”,但我却得到“你选择了 ssb”。
我以这种方式设置我的 selectInput 选项的原因是因为我希望左侧是图表的标题,而右侧是变量名。
非常感谢任何建议或替代方向!
library(shiny)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
selectInput("foodvars", "Select food:",
choices = c("Beef/Pork" = "beefpork",
"Sugar sweeteened bev." = "ssb",
"Total fruit" = "total_fruit"))),
mainPanel(
textOutput("dispText")))
)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
selectInput("foodvars", "Select food:",
choices = c("Beef/Pork" = "beefpork",
"Sugar sweeteened bev." = "ssb",
"Total fruit" = "total_fruit"))),
mainPanel(
textOutput("dispText")))
)
server <- function(input, output)
output$dispText <- renderText(
paste("You chose ",input$foodvars))
shinyApp(ui = ui, server = server)
【问题讨论】:
【参考方案1】:我们在全局范围内创建相同的命名向量,然后在逻辑 vector
上检索带有 names
的名称
library(shiny)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
selectInput("foodvars", "Select food:",
choices = c("Beef/Pork" = "beefpork",
"Sugar sweeteened bev." = "ssb",
"Total fruit" = "total_fruit"))),
mainPanel(
textOutput("dispText")))
)
choiceVec <- c("Beef/Pork" = "beefpork",
"Sugar sweeteened bev." = "ssb",
"Total fruit" = "total_fruit")
server <- function(input, output)
output$dispText <- renderText(
paste("You chose ",names(choiceVec)[choiceVec == input$foodvars]))
shinyApp(ui = ui, server = server)
-输出
【讨论】:
谢谢,@akrun。这是非常有用的后续问题:如果我最终将创建单独的 ui 和服务器文件。我应该在服务器文件中定义choiceVec 吗? @FettahP 在这种情况下,您还可以创建一个Global.R
文件并将代码放入其中。
抱歉耽搁了,非常感谢您的帮助!我已经在我的应用程序中实现了这一点。 :)以上是关于R Shiny - 如何在 selectInput 中显示选择标签的主要内容,如果未能解决你的问题,请参考以下文章
如何在 selectInput R Shiny 中为一长串选项设置值
我的第一个 R Shiny,我如何将 selectinput 与 renderplot(ggplot) 结合起来?
如何使用 actionButton 更改 R Shiny 中 selectInput 上的选定值?