If statement 如果有其他情况,则为JAGS/BUG

If statement 如果有其他情况,则为JAGS/BUG,if-statement,jags,winbugs,If Statement,Jags,Winbugs,我有大量的参数矩阵 关键是,在许多参数中,一些具有任意索引的参数会导致值错误,我想修复它们 玩具示例如下所示: foo[3, 2] <- mu[3, 2] # mu is some (4,4) matrix from data input for (r in 1:4) { for (c in 1:4) { foo[r, c] ~ dnorm( mu[r, c], .01 ) } } foo[3,2]最简单的方法是在数据中提供foo,其中foo[3,2]旁边的所有条

我有大量的参数矩阵

关键是,在许多参数中,一些具有任意索引的参数会导致值错误,我想修复它们

玩具示例如下所示:

foo[3, 2] <- mu[3, 2]    # mu is some (4,4) matrix from data input

for (r in 1:4) {
  for (c in 1:4) {
    foo[r, c] ~ dnorm( mu[r, c], .01 )
  }
}

foo[3,2]最简单的方法是在数据中提供
foo
,其中
foo[3,2]
旁边的所有条目都缺失,
foo[3,2]
mu[3,2]
。然后,您上面的代码应该可以正常工作(如果您在代码中删除
foo[3,2]
的定义)。另一种方法是定义固定单元周围的循环。例如:

for(r in c(1,2,4)){
  for(c in 1:4){
    foo[r, c]  ~ dnorm( mu[r, c], .01 )
  }
}
for(c in c(1,3,4)){
  foo[3, c] ~ dnorm( mu[r, c], .01 )
}