假设我有以下闪亮的 server.R 文件:
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)
})
})
为了不必data2 <- data[data$x == input$z, ]
在每个渲染调用中运行,我该怎么做?如果我执行以下操作,我会收到“'closure' 类型的对象不是子集”错误:
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)
})
})
我做错了什么?