有没有办法运行包含在字符串对象中的代码(在R中)?

时间:2013-12-19 09:24:16

标签: r string class

考虑以下字符串:

to_run = "alpha = data.frame(a=1:3, b=2:4)"

to_run = "for (i in 1:10){print(i);print('Hello World!')}"

如何运行在对象to_run中作为字符串字符编写的代码?

一种解决方案是在外部文件上输出对象并获取它:

write.table(to_run, 'I.am.a.Path/folder/file.name', quote=F, row.names=F, col.names=F)
source('I.am.a.Path/folder/file.name')

还有另一个更直接的解决方案吗?

2 个答案:

答案 0 :(得分:6)

您可以source:{/ p> textConnection

source(textConnection(to_run))
alpha
  a b
1 1 2
2 2 3
3 3 4

答案 1 :(得分:4)

eval(parse(text=to_run))是标准习语。你应该仔细考虑是否真的想要这样做。评估任意文本是将安全漏洞引入系统的好方法。