Ich arbeite an einem Experiment Design Problem und versuche, ein JAGS
Modell über R
und r2jags
anzupassen.R, JAGS, r2jags: Zugriff auf das letzte Element am Anfang einer `for` Schleife
Um den Verschleppungseffekt zu messen, muss ich auf das Element i-1
in der Liste für eine der Variablen zugreifen. Wenn i=1
, muss diese Variable das letzte Element in seiner Werteliste zurückgeben. Ich habe versucht, ein ifelse() zu verwenden, aber das hat nicht funktioniert.
Was ich versucht:
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
}
ich den Fehler:
Error in jags.model(file = "TEMPmodel.txt", data = dataList, n.chains = 3, :
RUNTIME ERROR:
Compilation error on line 7.
Possible directed cycle involving j
Einsicht darüber, wie meine Lösung zu erreichen, wird geschätzt.
Ein einfaches Beispiel in R von dem, was ich versuche zu erreichen, falls das obige nicht klar ist. Für die Variable d
muss ich auf das vorhergehende Element zugreifen. Wenn am Anfang des Indexes begonnen wird, ist das vorhergehende Element das letzte Element. Für JAGS bin ich nicht sicher, wie ich mein Modell dafür codiere.
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]