R Shiny - 如何在 selectInput 中显示选择标签

Fai*_*ith 4 r shiny

我定义了一个 selectInput 如下。我想访问每个选项的标签,并将其呈现在主面板上。

如果用户选择“Sugar sweetened bev.”,我想在主面板上呈现如下内容:

“你选择了加糖的 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)
Run Code Online (Sandbox Code Playgroud)

akr*_*run 5

我们全局创建相同命名的向量,然后names使用逻辑检索名称vector

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)
Run Code Online (Sandbox Code Playgroud)

-输出

在此处输入图片说明