Ustaw obiekt globalny w Shiny

Powiedzmy, że mam następujący plik server.R w błyszczącym:

shinyServer(function(input, output) {
  output$plot <- renderPlot({
    data2 <- data[data$x == input$z, ]  # subsetting large dataframe
    plot(data2$x, data2$y)
  })
   output$table <- renderTable({
     data2 <- data[data$x == input$z, ]  # same subset. Oh, boy...
     summary(data2$x)
   })
})

Co mogę zrobić, aby nie musieć biegaćdata2 <- data[data$x == input$z, ] w każdym wywołaniu renderowania? Jeśli zrobię co następuje, otrzymuję błąd „obiektu typu„ zamknięcie ”nie jest podzbiorem”:

shinyServer(function(input, output) {
  data2 <- reactive(data[data$x == input$z, ])
  output$plot <- renderPlot({
    plot(data2$x, data2$y)
  })
  output$table <- renderTable({
    data2 <- data[data$x == input$z, ]
    summary(data2$x)
  })
})

Co zrobiłem źle?

questionAnswers(1)

yourAnswerToTheQuestion