【问题标题】:r equivalent of matlab evalr 相当于 matlab eval
【发布时间】:2016-02-07 00:55:50
【问题描述】:

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

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

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

eval(strcat(f1,f2,f3))

将创建这个情节

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

问题:
在'R'中这样做的方法是什么

【问题讨论】:

  • 我猜你正在寻找这个plot(x,y, type = "l")
  • @lizzie,我想 MichaelChirico 明白了。我希望能够将其包装在循环中,并使用变量构建变量名和函数参数。

标签: r eval


【解决方案1】:

你想要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))

【讨论】:

  • eval(call('plot',as.symbol('x'),as.symbol('y'))) 而不是建立正确分隔的文本表示,只是为了解析它。
猜你喜欢
  • 2012-01-22
  • 1970-01-01
  • 1970-01-01
  • 2010-11-14
  • 1970-01-01
  • 2015-09-07
  • 2012-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多