if-statement - JAGS/BUGS 中的 if-else 条件
问题描述
我有很大的参数矩阵。
关键是在许多参数中,一些具有任意索引的参数会导致值错误,我想修复它们。
玩具示例如下:
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 )
}
}
我看到了一些示例,例如15414303和46730232,但我无法解决如何在我的案例中应用这些技巧(或类似技巧)的问题。
有没有一种简单的方法可以在 JAGS/BUGS 中实现这样的逻辑?
解决方案
最简单的方法是foo
在数据中提供旁边的所有条目foo[3,2]
都丢失并且foo[3,2]
is 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 )
}
推荐阅读
- python - 重新排列熊猫数据框
- laravel - 如何在laravel中获得与子关系的关系?
- python-3.x - 使用 seaborn 进行相关性分析:TypeError: 'float' 对象不能被解释为整数
- spring - 如果 json 对象在 post 请求中缺少键,则引发错误
- python - (Python)我怎样才能知道是否有其他相等的相反符号的值?
- python - 使用 Python 聚合另一列的值的列
- python - vscode 使用方法:from png import *
- java - 使用 HashMap 查找重复项
- javascript - 处理 http 测试请求中的错误
- arrays - 如何在 Matlab 上展开矩阵?