R:在将表达式传递给函数之前先对其求值

时间:2018-10-24 09:40:05

标签: r

这可能是微不足道的,但我不是R专家,我无法找到答案。

我有一些执行“非标准评估”的库函数,特别是input_fn库中的tfestimators,但是以下应该是有效的MWE:

foo <- function(x) {
    substitute(x)
}

现在,如果我执行

val <- "value"
foo(val)

结果是我得到val,从我得到的结果中得到的是“符号”类型,我可以在其上运行eval来有效地获得"value"

但是-如果val是一些我想重用的复杂值-如何将val评估为"value" 之前被传递给foo? (无需更改foo

此外,您能否指出一些有关此功能的速成教程?

1 个答案:

答案 0 :(得分:1)

最后,我找到了使用do.call的解决方案here

do.call(foo, list(val))   # returns "value"