如果对象还不存在,我可以告诉R创建一个对象吗?

如果对象还不存在,我可以告诉R创建一个对象吗?,r,replace,na,missing-data,metafor,R,Replace,Na,Missing Data,Metafor,我正在使用metafor进行大量的元分析。为了获得对结果的概述,我想把包含主要估计的向量放在一起(稍后将它们合并到一个数据帧中)。然而,对于其中一些计算,我还没有足够的初步研究,因此R将无法为这个特定领域创建一个模型。因此,当我试图在最后创建一个向量时,我将收到一条错误消息 library(metafor) r1<-c(NA,NA) n1<-c(NA,NA) data1<-data.frame(r1,n1) escalc1<-escalc(measure="COR", r

我正在使用metafor进行大量的元分析。为了获得对结果的概述,我想把包含主要估计的向量放在一起(稍后将它们合并到一个数据帧中)。然而,对于其中一些计算,我还没有足够的初步研究,因此R将无法为这个特定领域创建一个模型。因此,当我试图在最后创建一个向量时,我将收到一条错误消息

library(metafor)
r1<-c(NA,NA)
n1<-c(NA,NA)
data1<-data.frame(r1,n1)
escalc1<-escalc(measure="COR", ri=r1,ni=n1, data = data1, method=REML)
rma1<-rma(yi,vi, data=escalc1)
#note the program will not be able to calculate rma1, because k = 0.

r2<-c(.3,.2)
n2<-c(100,200)
data2<-data.frame(r2,n2)
escalc2<-escalc(measure="COR", ri=r2,ni=n2, data = data2, method=REML)
rma2<-rma(yi,vi, data=escalc2)
#it will create an object for rma2 though

estimates<-c(rma1$beta, rma2$beta)
#as rma2 exists but rma1 doesn't, R will no let me create a vector here
库(metafor)

r1您可以使用
tryCatch
告诉R在发生错误时作为替代方法应做什么,例如

library(metafor)
r1<-c(NA,NA)
n1<-c(NA,NA)
data1<-data.frame(r1,n1)
escalc1<-escalc(measure="COR", ri=r1,ni=n1, data = data1)
e1 <- tryCatch({
  rma1<-rma(yi,vi, data=escalc1); 
  rma1$beta}, error = function(e) NA)


r2<-c(.3,.2)
n2<-c(100,200)
data2<-data.frame(r2,n2)
escalc2<-escalc(measure="COR", ri=r2,ni=n2, data = data2)
e2 <- tryCatch({
  rma2<-rma(yi,vi, data=escalc2); 
  rma2$beta}, error = function(e) NA)

estimates<-c(e1, e2)
#[1]        NA 0.2356358
库(metafor)

r1您将运行多少分析?假设您有大量的实际数据,您会像示例中那样手动执行所有这些操作,还是会在数据上运行一些循环并使过程自动化?使用
tryCatch
。我将进行90次分析,不计算其他主持人测试。我将手动执行所有这些操作,因为我不是一个有经验的程序员,以前从未使用过循环。