Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.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中JAGS模型的循环问题_R_Loops_Jags - Fatal编程技术网

R中JAGS模型的循环问题

R中JAGS模型的循环问题,r,loops,jags,R,Loops,Jags,我试图用RJAG在一个循环中运行7个JAGS模型,但在运行循环时遇到了问题 首先,我创建了七个模型(已经创建了模型txt文件)。JAGS代码似乎很好,我认为问题在于我对R向量缺乏经验 model1 <- NULL model2 <- NULL model3 <- NULL model4 <- NULL model5 <- NULL model6 <- NULL model7 <- NULL for (i in 1:totaltime) { #where

我试图用RJAG在一个循环中运行7个JAGS模型,但在运行循环时遇到了问题

首先,我创建了七个模型(已经创建了模型txt文件)。JAGS代码似乎很好,我认为问题在于我对R向量缺乏经验

model1 <- NULL
model2 <- NULL
model3 <- NULL
model4 <- NULL
model5 <- NULL
model6 <- NULL
model7 <- NULL

for (i in 1:totaltime) { #where totaltime is length=7
assign(paste("model",i,sep=""), jags.model(paste("model",i,".txt",sep=""),        data=DataList , #inits=initsList , 
                      n.chains=nChains , n.adapt=adaptSteps ))
}
此部分获取错误:对象[[name,exact=TRUE]]中的错误:下标超出范围。但是,如果我只是键入:

update(model1, n.iter=burnInSteps)
那很好。为什么更新函数不能识别循环粘贴?下一行还说:

for (i in 1:totaltime) {
paste("codaSamples",i,sep="")=coda.samples(paste("model",i,sep=""),      variable.names=parameters,n.iter=nPerChain,thin=thinSteps)
}
这会给出错误消息:$iter:$模型中的错误:运算符对于原子向量无效

但是,如果我以如下方式运行向量:

 codaSamples1=coda.samples(model1, variable.names=parameters,n.iter=nPerChain,thin=thinSteps)

它工作得很好,太令人沮丧了

避免
assign
:它会导致这种错误(
粘贴(“model”,i,sep=”“)
是一个带有变量名称的字符串,而不是变量本身),甚至更糟。您可以将结果存储在一个列表中:
models[[i]]感谢您指定一些事情,因为列表似乎已经解决了这个问题。
 codaSamples1=coda.samples(model1, variable.names=parameters,n.iter=nPerChain,thin=thinSteps)