2013-02-20 37 views
5

这应该很快回答:如何从字符串变量创建文本连接?

我想使用jags包'jags.model函数。在众多的参数,它需要的参数file

file - 包含模型的描述中 的BUGS语言的尖齿方言的文件名。

或者,文件可以是 可读的文本模式连接或完整的URL。

我想将字符串传递给此参数。解决此问题的一种方法是将字符串写入临时文件并传递文件名。但我希望有一种直接的方式将字符串转换为连接。

回答

7

您可以使用textConnection像这样的(这里用read.csv功能,但我想应该jags.model工作方式相同):

mytext <- "x,y\n1,2\n3,4" 
read.csv(textConnection(mytext)) 
# x y 
# 1 1 2 
# 2 3 4 
+0

完美的作品! – 2013-02-20 13:45:26

1

我只想补充约textConnection一个小点。当我在一个大for循环中使用jags.model(textConnection(x)...)时(即,超过125次迭代),偶尔会遇到问题。从本质上讲,似乎textConnections正在打开,但没有关闭,然后我会最终收到一个错误后,可能textConnections已被打开,说明all connections are in use

我不能完全肯定的最佳解决方案,但我相信你可以这样做:

zz <- textConnection(x) 
jags.model(zz, ...) 
close(zz)