替换引用的参数

时间:2016-02-04 14:58:37

标签: r

寻找一种在引用语言对象上使用替换作为表达式的方法 substitute期望在expr中得到懒惰的表达 目标是在.expr中替换expr.template## data expr = quote(x <- f(10)) expr.template = quote(g(.expr, flag = TRUE)) ## expected output quote(g(x <- f(10), flag = TRUE)) #g(x <- f(10), flag = TRUE) ## current workaround h = function(expr, expr.template){ eval(substitute( substitute( .expr.template, list(.expr = expr) ), list(.expr.template = expr.template) )) } h(expr = expr, expr.template = expr.template) #g(x <- f(10), flag = TRUE) 是基于元数据动态生成的语言对象。

xml

如果没有更多的规范方法来处理它,我会感到惊讶。基础R溶液是优选的。

1 个答案:

答案 0 :(得分:6)

使用do.call

do.call("substitute", list(expr.template, list(.expr = expr)))
## g(x <- f(10), flag = TRUE)