jags.model
期望包含BUGS模型的文件名作为其第一个参数。
为了在一个脚本中包含所有内容,我有时使用writeLines
命令将BUGS模型写入文件。例如,
library(rjags)
writeLines("
model {
for (i in 1:length(Y1)) {
Y1[i] ~ dnorm(Beta0, Beta1)
}
Beta0 ~ dunif(1, 5)
Beta1 ~ dunif(0, 10000)
}
"
, "m1.jags")
mod1 <- jags.model("m1.jags", data=Data)
但是,如果我有自己的选择,我真的不希望创建该文件。
有没有办法在R中创建包含文本的某种虚拟文件?
我想可能有某种方法可以使用R连接以某种方式将字符串写入变量来模仿文件的功能。
我在思考的粗略伪代码:
m1.jags <- "model {
...
}
"
jags.model(SomeRCommand(m1.jags), data=Data)
答案 0 :(得分:6)
感谢@Andrie告诉我答案:即用textConnection
函数包围字符变量。
为了完整起见,这是如何应用于我的具体问题:
m1.jags <- "
model {
for (i in 1:length(Y1)) {
Y1[i] ~ dnorm(Beta0, Beta1)
}
Beta0 ~ dunif(1, 5)
Beta1 ~ dunif(0, 10000)
}
"
, "m1.jags")
mod1 <- jags.model(textConnection(m1.jags), data=Data)