R错误:错误在…:类型为'的对象;关闭';在全球环境中,是否不可子集访问反应式数据?
我正在尝试制作一个程序,获取用户从选择输入(pnum)中选择的患者的数据。我正在尝试向pdata添加一个新列stampDate,但运行此操作时: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
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您有一个类型opdata
应该是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})