如何在R中进行部分替换?

时间:2014-10-29 19:16:20

标签: r metaprogramming substitution

一个简单的例子:

expr <- quote(x^t)
t <- 2

我想要的是表达式x^2

library(pryr)
subs(expr) # x^t
subs(expr, list(t=2)) # expr

2 个答案:

答案 0 :(得分:4)

使用基础R,你可以像

这样的东西
expr <- quote(x^t)
do.call("substitute", list(expr, list(t=2)))
# x^2

答案 1 :(得分:2)

或者(并且与R Language Definition中给出的如何执行此操作的示例相对应),您可以使用substitute()两次。

expr <- quote(x^t)
eval(substitute(substitute(e, list(t=2)), list(e=expr)))
# x^2