Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R错误:错误在…:类型为'的对象;关闭';在全球环境中,是否不可子集访问反应式数据?_R_Shiny_Rstudio_Reactive Programming - Fatal编程技术网

R错误:错误在…:类型为'的对象;关闭';在全球环境中,是否不可子集访问反应式数据?

R错误:错误在…:类型为'的对象;关闭';在全球环境中,是否不可子集访问反应式数据?,r,shiny,rstudio,reactive-programming,R,Shiny,Rstudio,Reactive Programming,我正在尝试制作一个程序,获取用户从选择输入(pnum)中选择的患者的数据。我正在尝试向pdata添加一个新列stampDate,但运行此操作时: library(shiny) require(RODBC) library(ggplot2) library(quantmod) library(reshape) shinyServer(function(input, output) { chan1 <- reactive({odbcConnect('database', uid='us

我正在尝试制作一个程序,获取用户从选择输入(pnum)中选择的患者的数据。我正在尝试向pdata添加一个新列stampDate,但运行此操作时:

library(shiny)
require(RODBC)
library(ggplot2)
library(quantmod)
library(reshape)

shinyServer(function(input, output) {

  chan1 <- reactive({odbcConnect('database', uid='username')})
  queryString1 <- reactive({sprintf("SELECT PatientNum, TimeStamp as Time_Stamp, SWStatus,SWMeanQoS1 as EMAT,SWS3DisplayValue as S3,SWS4DisplayValue as S4,SysDysIndexNoEFLR as SDI
                    FROM Biometrics..WcdHeartSounds
                    WHERE PatientNum = ",input$pnum)})
  output$pdata <- renderDataTable({
  rdata <- reactive({sqlQuery(chan1(), queryString1())})
  })

  odbcCloseAll()

  pdata$stampDate <- as.Date(pdata$Time_Stamp, "%y-%m-%d")

})

我应该在全局环境中访问数据表pdata,并在用户每次输入新患者时更新它,还是在它仍然只是一个反应功能时,有其他方法对其进行子集?我是RStudio的新手,工作场所没有人帮助我,因此非常感谢您的帮助。

首先,检查您的数据框,您没有通过
%d

另外,考虑在
renderDataTable({})


rdata您有一个类型o
pdata
应该是
rdata
对吗?谢谢您指出这一点。不管怎样,我还是会得到同样的错误
Error in pdata$Time_Stamp : object of type 'closure' is not subsettable
sprintf("SELECT PatientNum, TimeStamp as Time_Stamp, SWStatus,
         SWMeanQoS1 as EMAT,SWS3DisplayValue as S3,SWS4DisplayValue as S4,
         SysDysIndexNoEFLR as SDI FROM Biometrics..WcdHeartSounds 
         WHERE PatientNum = %d;", input$pnum)
rdata <- reactive({sqlQuery(chan1(), queryString1())})
rdata$stampDate <- as.Date(rdata$Time_Stamp, "%y-%m-%d")

output$pdata <- renderDataTable({rdata})