【问题标题】:Shiny only uses the first item of selectInput when multiple = TRUE当 multiple = TRUE 时,Shiny 仅使用 selectInput 的第一项
【发布时间】:2018-08-07 08:26:21
【问题描述】:

我试图在图中使用input$levels 的值作为标题,但selectInput 仅在选择多个时显示第一个值。情节本身以正确的方式变化,这意味着 Shiny 知道选择了多个级别。

library(tidyverse)
library(shiny)

test_data <- data.frame(x = seq(1, 100, 10),
                        y = seq(1, 100, 10),
                        level = rep(c(1, 2), 5))

ui <- fluidPage(

  titlePanel("Example"),

  sidebarLayout(
    sidebarPanel(
      selectInput("levels",
                  "Include level(s):",
                  selected=1,
                  choices=c(1, 2),
                  multiple=TRUE)
    ),

    mainPanel(
      plotOutput("plot")
    )
  )
)


server <- function(input, output) {

  output$plot <- renderPlot({
    ggplot(test_data %>% 
             filter(level %in% input$levels), aes(x, y)) + 
      geom_point() +
      ggtitle(paste("Including level(s):", input$levels))
  })

}

shinyApp(ui, server)

选择多个时如何访问selectInput 的所有值?

【问题讨论】:

    标签: r ggplot2 shiny


    【解决方案1】:

    input$levels 包含您所选项目的向量。要使它们出现在图表的标题中,您可以:

      ggtitle(paste("Including level(s):", paste(input$levels,collapse=', ')))
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2020-10-03
      • 2021-07-08
      • 1970-01-01
      • 2019-10-23
      • 2022-01-23
      • 2014-12-15
      • 2020-08-02
      • 1970-01-01
      • 2017-08-23
      相关资源
      最近更新 更多