Slow and steady wins the race - eventReactive()

Ottavia M. Epifania

An example


The code

ui <- fluidPage(
    sidebarLayout(sidebarPanel(
        selectInput(inputId = "dataset",
                    label = "Choose a dataset:",
                    choices = list("rock" = 1, 
                                   "pressure" = 2,
                                   "cars" = 3)), 
      actionButton("load", "Select dataset")
      ),
mainPanel(
      plotOutput(
          "graph"   
        ), 
      verbatimTextOutput( 
          "summary"   
      ))))
server <- function(input, output){
    dataInput <- eventReactive(input$load, {
      if(input$dataset == 1){
        data <- rock
      } else if (input$dataset == 2 ){
        data <- pressure
      } else if (input$dataset == 3) {
        data <- cars
      } 
    } 
    )
output$graph <- renderPlot({
      data <- dataInput()
      plot(data[, c(1:2)])
    })
output$summary <- renderPrint({
      data <- dataInput()
      summary(data[, c(1:2)])
    })
  }
shinyApp(ui, server)