相当于matlab eval

时间:2016-02-07 00:55:50

标签: r eval

背景
MatLab(或MATLAB)有一个名为“eval”的命令。它允许基于文本的语句构造及其执行。 这段代码:

x = 1:100
y = sin(x*(pi/50))

f1 = 'plot('
f2 = 'x,y'
f3 = ');'

eval(strcat(f1,f2,f3))

将创建此情节

plot

“R”中的帮助文档似乎与指定和操作字符串无关。

问题:
在'R'

中这样做的方法是什么

1 个答案:

答案 0 :(得分:3)

您需要eval(parse()),例如,

eval(parse(text = paste0("plot(", "x,y", ")")))

当然,您必须建立在此命令的基础上才能真正模仿MATLAB输出,例如

arguments <- c('x', 'y', 'type="l"', 'col="blue"',
               'xlim=range(x)','ylim=range(y)')
cmd <- paste0("plot(", paste(arguments, collapse = ","), ")")
eval(parse(text = cmd))

enter image description here