当multiple = TRUE时,Shiny仅使用selectInput的第一项

时间:2018-02-27 16:01:13

标签: r ggplot2 shiny

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

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的所有值?

1 个答案:

答案 0 :(得分:1)

input$levels包含所选项目的向量。要使它们显示在图表的标题中,您可以执行以下操作:

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

希望这有帮助!