【问题标题】:R Shiny - how to display choice label in selectInputR Shiny - 如何在 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)

【问题讨论】:

    标签: r shiny


    【解决方案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 文件并将代码放入其中。
    • 抱歉耽搁了,非常感谢您的帮助!我已经在我的应用程序中实现了这一点。 :)
    猜你喜欢
    • 2021-07-09
    • 2015-09-05
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 2021-05-17
    • 2021-03-24
    • 1970-01-01
    相关资源
    最近更新 更多