R shinyapp从复选框中选择预先存储的数据集

时间:2017-03-01 05:34:38

标签: r visualization shiny shiny-server

ui <- fluidPage(
    checkboxGroupInput("data", "Select data:",
                       c("Iris" = "iris",
                         "Cars" = "mtcars")),
    plotOutput("myPlot")
  )

  server <- function(input, output) {
    output$myPlot <- renderPlot({
      plot(Sepal.Width ~ Sepal.Length, data = input$data)
    })
  }

  shinyApp(ui, server)

我有一个shinyApp,我希望用户选择一个数据集。从那里,我想使用该数据集来制作一个简单的情节。但是,似乎用户输入复选框并未成功传递到server。我怎么能绕过这个?

1 个答案:

答案 0 :(得分:0)

闪亮的典型方法是使用switch(),这意味着您不需要在输入中指定数据集,您可以在服务器中完成所有操作。在您的背景下:

library(shiny)
ui <- fluidPage(
  checkboxGroupInput("data", "Select data:",
                     c("Iris" = "iris",
                       "Cars" = "mtcars")),
  plotOutput("myPlot")
)

server <- function(input, output) {
  dat <- reactive({
    switch()
  })
  output$myPlot <- renderPlot({
    dat <- switch(input$data, 
                  "iris" = iris,
                  "mtcars" = mtcars)
    plot(Sepal.Width ~ Sepal.Length, data = get(input$data))
  })
}

shinyApp(ui, server)

请注意,您可以使用checkboxGroupInput中的任何字符串,这使其成为一种更灵活的工作方式。