考虑以下字符串:
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')
还有另一个更直接的解决方案吗?
答案 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))
是标准习语。你应该仔细考虑是否真的想要这样做。评估任意文本是将安全漏洞引入系统的好方法。