Я работаю над проблемой проектирования эксперимента и пытаюсь установить модель JAGS
через R
и r2jags
.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]