Vector 复制R';WinBUGS中的s prod()函数

Vector 复制R';WinBUGS中的s prod()函数,vector,winbugs,r2winbugs,Vector,Winbugs,R2winbugs,使用WinBUGS,如何计算单个向量中所有值的乘积? 我尝试在同一个向量上使用for循环 例如: 在R中,如果AHi,欢迎访问该站点 请记住,Bug是一种声明性语法,而不是一种编程语言,因此您不能像预期的那样在诸如R之类的语言中过度写入变量值。因此,您需要创建一些中间节点来执行计算 如果您有以下数据: A <- [1,2,3,4] nA <- 4 A非常感谢@MattDenwood。请您澄清为什么在WinBUGS代码中使用prod(),并在学术文本示例中使用prod(),例如Win

使用WinBUGS,如何计算单个向量中所有值的乘积?

我尝试在同一个向量上使用for循环

例如:


在R中,如果AHi,欢迎访问该站点

请记住,Bug是一种声明性语法,而不是一种编程语言,因此您不能像预期的那样在诸如R之类的语言中过度写入变量值。因此,您需要创建一些中间节点来执行计算

如果您有以下数据:

A <- [1,2,3,4]
nA <- 4

A非常感谢@MattDenwood。请您澄清为什么在WinBUGS代码中使用prod(),并在学术文本示例中使用prod(),例如WinBUGS中的贝叶斯总体分析(Kery&Schaub)第165页?[Link]()据我所知,这在WinBUGS中永远不会起作用,但它在OpenBUGS或JAGS中也会起作用,因此可能代码是用于较新的软件。老实说,我已经多年没有使用WinBUGS(或OpenBUGS),因为它不再被开发。JAGS仍在开发中,而且是跨平台的,这对我很重要。是的,我完全同意您关于使用最新软件的重要性的看法。我很感兴趣地发现,prod()函数作为一种未记录的功能在WinBUGS中工作,但正如您所说,它在OpenBUGS和JAGS中都有记录。它一定是在手册编写之后添加的。谢谢你的回复!
sumlogA[1] <- 0
for(i in 1:nA){
    sumlogA[i+1] <- sumlogA[i] + log(A[i])
}
prodA <- exp(sumlogA[nA+1])