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 上的选定值?

从 SelectInput (R Shiny) 中的分组选项列表中获取组标签

r 在Shiny中选择和多个selectInput

R Shiny selectInput和submitButton并排