我正在研究一个实验设计问题,并试图通过和拟合JAGS
模型。R
r2jags
为了测量残留效应,我必须访问i-1
列表中的元素以获取其中一个变量。当 时i=1
,此变量必须返回其值列表中的最后一项。我尝试使用 ifelse() 但这不起作用。
我尝试了什么:
for (i in 1:Ntotal){
j <- ifelse(i==1,Ntotal,j)
y[i] ~ dnorm(y.hat[i], tau)
y.hat[i] <- mu + beta*a[i] + tau_d*b[i]*period[i] + rho*product[j] + epsilon[i]
epsilon[i] ~ dnorm(0, tau) # gaussian error
}
我得到错误:
Error in jags.model(file = "TEMPmodel.txt", data = dataList, n.chains = 3, :
RUNTIME ERROR:
Compilation error on line 7.
Possible directed cycle involving j
感谢您对如何实现我的解决方案的任何见解。
如果上述内容不清楚,我在 R 中尝试实现的一个简单示例。对于 variable d
,我必须访问前面的元素。从索引的开头开始时,前面的元素是最后一个元素。对于 JAGS,我不确定如何编写我的模型来执行此操作。
i = 1
exam <- data.frame(a=c(5,6,7), b=c(10,11,12), d=c(20,21,22))
exam$a[i] + exam$b[i] + exam$d[i-1]