2012-05-21 19 views
4

jags.model需要包含BUGS模型的文件名作为其第一个参数。 为了在一个脚本中包含所有内容,我有时使用writeLines命令将BUGS模型写入文件。例如,如何使字符向量的内容看起来像R中的文件?

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) 
+4

是。使用'textConnection' – Andrie

回答

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) 
相关问题