r - 尝试在 JAGS 中重新定义节点编译错误
问题描述
我正在尝试从 R 运行以下 JAGS 代码。我只是显示发生错误的代码的一部分。
for(mmm in 1 : p){
for(jj in 1 : K){
vv[jj] ~ dbeta(1,1);
}
pp[1] <- vv[1];
for (jjj in 2 : K){
pp[jjj] <- vv[jjj] * (1 - vv[jjj-1]) * pp[jjj-1]/vv[jjj-1];
}
}
错误Attempt to redefine node vv[1]
在第 3 行。我不确定为什么会发生错误。任何帮助,将不胜感激。
解决方案
你有这个1:K
循环嵌套在你的1:p
循环中。因此,当mmm
从1
到2
您将覆盖vv
. 在不了解该模型的更多信息的情况下,有两种可能的解决方案。
- 从嵌套的 for 循环中删除这些。
- 用 索引
1:p
循环内的值mmm
。
假设第二个答案是您需要的,它看起来像这样:
for(mmm in 1 : p){
for(jj in 1 : K){
vv[mmm, jj] ~ dbeta(1,1);
}
pp[mmm,1] <- vv[mmm,1];
for (jjj in 2 : K){
pp[mmm,jjj] <- vv[mmm,jjj] *
(1 - vv[mmm,jjj-1]) * pp[mmm,jjj-1]/vv[mmm,jjj-1];
}
}
推荐阅读
- python - python 全局变量如何在 Telebot(pyTelegramBotAPI)中工作?
- php - 仅从查询中获取一行
- javascript - 显示短版或完整版文本
- c++ - 图片 SFML 加载失败
- python - 复制同一 ssrs 报表服务器中的文件夹自动更新新的子报表路径和共享数据集
- python - 为什么 stripped_string 输出没有用逗号分隔?
- r - 在 R 中设置 IRT 模型的难度值
- python - ActionChains 不使用 Firefox 执行 F5 按下
- mysql - 如何保护数据库免受可能填满数据库服务器内存的查询的影响?
- google-apps-script - 具有 onEdit() 触发器的 Google App Scripts 中除所有者之外的其他编辑器的数据保护问题