Shiny calling a reactive in another reactive. Error: could not find data

Shiny calling a reactive in another reactive. Error: could not find data

我在使用 Shiny 对另一个反应进行反应以用于另一个反应时遇到问题。我有 pdata 子集数据,我想使用将 pdata() 发送到 zdata()Zdata 将对此 pdata() 执行聚合,我想将此聚合数据发送到 ggplot。但是 Shiny 说:

ERROR: could not find function "pdata".

这是数据框:

Hours<-c(2,3,4,2,1,1,3)
Project<-c("a","b","b","a","a","b","a")
Period<-c("2014-11-22","2014-11-23","2014-11-24","2014-11-22", "2014-11-23", "2014-11-23", "2014-11-24")
cd=data.frame(Project,Hours,Period)

Server.R

library(shiny)
library(doBy)
library(ggplot2)

shinyServer(function(input, output) {
  pdata <- reactive({
    subset(cd, Project==input$proj)
  }
  )
  zdata<-reactive({
summaryBy(pdata()$Hours ~ pdata()$Period, data = pdata(), FUN=sum )
  })
  plotType <- reactive({
    switch(input$pType,
           Total = ggplot(zdata(),aes(x=Period,y=zdata()[2]))+ geom_line()+stat_smooth()
           )
      })
  output$testPlot <- renderPlot({ 
    print(plotType())

})


我确信我的 ui.R 是正确的,所以我没有 post。我开始收到以下行的错误:

summaryBy(pdata()$Hours ~ pdata()$Period, data = pdata(), FUN=sum )

为什么 Shiny 给我错误:找不到函数 pdata

pdata() 在公式中似乎是多余的...您可以试试这个代码吗?

zdata<-reactive({
  summaryBy(Hours ~ Period, data = pdata(), FUN=sum )
})