我正在尝试制作一个反应数据子集,以避免在分析的每个阶段进行子集化。但是我得到错误类型'闭包'的对象不是子集。我已经看到了以前的答案,我避免使用base-R函数。
library(shiny)
shinyServer(function(input, output) {
data_all <- read.csv("data/usage_data.csv")
data_user <- reactive({
subset(data_all, data_all$consumername %in% input$user)
})
output$distPlot <- renderPlot({
#data_user <- subset(data_all, data_all$consumername %in% input$user)
data_user$date <- as.Date(data_user$date)
stats$mean <- mean(data_user$usage_TB)
stats$sd <- sd(data_user$usage_TB)
pp <- ggplot(data_user, aes(date,usage_TB)) + geom_line() + xlim(input$dates)
pp + geom_hline(yintercept = stats$mean, color = "red")
})
output$mean <- renderPrint({
#data_user <- subset(data_all, data_all$consumername %in% input$user)
mean(data_user$usage_TB)
})
output$sd <- renderPrint({
#data_user <- subset(data_all, data_all$consumername %in% input$user)
sd(data_user$usage_TB)
})
output$p75 <- renderPrint({
#data_user <- subset(data_all, data_all$consumername %in% input$user)
quantile(data_user$usage_TB,0.75)
})
})
如果我在每个步骤制作子集t我没有问题,但我认为使子集反应应该更好。
答案 0 :(得分:1)
在https://groups.google.com/forum/#!msg/shiny-discuss/p2eElm-XaqQ/y3vB4l3tt3EJ
重新询问并回答了问题基本上,他们建议
data_user <- reactive({
df <- subset(data_all, data_all$consumername %in% input$user)
df$date <- as.Date(data_user$date)
df
})
没有足够的代表添加评论,我认为这对其他人有用 - 这对我来说。