如何使字符向量的内容看起来像R中的文件?

时间:2012-05-21 07:13:33

标签: r jags

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)

1 个答案:

答案 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)