0
我正在處理實驗設計問題,並嘗試通過R
和r2jags
來匹配JAGS
模型。R,JAGS,r2jags:訪問「for」循環開始處的最後一個元素
要測量殘留效應,我必須訪問其中一個變量列表中的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的一個簡單的例子,我試圖實現,以防上述情況不明確。對於變量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]