r subset shiny

Establecer objeto global en Shiny



subset (1)

data2 es una función que devuelve el subconjunto que está buscando. Entonces necesita llamar a data2 y guardar el resultado en alguna variable, luego puede trazar / resumir las diversas columnas

## data should be defined somewhere up here or in global.R shinyServer(function(input, output) { data2 <- reactive(data[data$x == input$z, ]) output$plot <- renderPlot({ newData <- data2() plot(newData$x, newData$y) }) output$table <- renderTable({ newData <- data2() summary(newData$x) }) })

Si aún no lo has hecho, te recomiendo leer a través de http://rstudio.github.io/shiny/tutorial/#welcome . La página sobre reactividad aborda esta cuestión bastante bien.

Digamos que tengo el siguiente archivo server.R en brillante:

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) }) })

¿Qué puedo hacer para no tener que ejecutar data2 <- data[data$x == input$z, ] dentro de cada llamada al render? Si hago lo siguiente, aparece el error "objeto de tipo ''cierre'' no se puede subconjuntar":

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) }) })

¿Qué hice mal?