【发布时间】:2010-12-17 03:41:08
【问题描述】:
我很想知道 R 是否可以使用它的eval() 函数来执行由例如提供的计算。一个字符串。
这是一种常见的情况:
eval("5+5")
但是,我得到的不是 10:
[1] "5+5"
有什么办法吗?
【问题讨论】:
-
尽管所有答案都显示了如何使用 parse 解决这个问题......为什么需要将语言类型存储在字符
string中? Martin Mächler 的回答应该得到更多的支持。 -
谢谢@PetrMatousu。是的,我很震惊地看到错误信息现在是如何在 SO 上传播的……人们支持
eval(parse(text = *))虚假解决方案。 -
我想运行以下形式的脚本:
QQ = c('11','12','13','21','22','23'),即:QQ =c(...,'ij',..) 其中 i,j 在可能不同的范围内变化从跑到跑。对于这个和类似的例子,我可以把脚本写成paste( "QQ = c('", paste(rep(1:2,each=3),1:3, sep="", collapse="','"), "')",sep=""),选项eval(parse(text=...))根据脚本在工作环境中创建向量QQ。如果不是使用“text=...”,那么正确的 R 编码器方法是什么?