微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 runjags 遍历数据子集

如何解决如何使用 runjags 遍历数据子集

我正在尝试使用基于我在 stackoverflow Loop through (subsets) using jags 上找到的示例的 runjags 遍历数据子集。

我的原始数据集有 2000 多个观测值,我必须根据具有 15 个级别的因子变量对其进行子集化。而不是一个一个地运行分析,而是试图循环遍历它。

请在下面找到我要解决的问题的示例代码以及我收到的错误消息

 library(runjags)
  ###
 cat("model{for(i in 1:N){
attack[i] ~ dnorm(mu[i],tau)
 mu[i] <- alpha + beta*agent[i]
 }
alpha ~ dnorm(0,1.0e-6)
beta ~ dnorm(0,1.0e-6
tau ~ dgamma(0.001,0.001}",file="mod1.txt")

data1 <- 
data.frame(attack=rnorm(18,1),agent=rnorm(18,5,18),cplace=c("r1","r1","r2","r3","r4","r1"))
sub_dat <- split(data1[,c(1,2,3)],as.factor(data1[,3)]$cplace))
   #######
   model.output <- lapply(sub_dat,function(x) {
   N <- nrow(x)
   attack <- x$attack
   agent <- x$agent
   data <- list("N","attack","agent") 
   parameters <- c("alpha","beta")
  set.seed(3456)
  samples <- autorun.jags(model="mod1.txt",monitor=c("alpha","beta"),data=data,n.chains=3,startburnin = 5000,startsample=5000,adapt=1000,psrf.target=1.02)
  return(samples)
  })

运行上述后,我收到错误消息“错误:指定为数据参数的列表不是完整命名的列表”

请问我该如何解决这个问题。谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。