从字符串中解析和评估quosures

时间:2017-11-26 21:32:33

标签: r rlang quosure

有没有办法从字符串中解析和评估quosure。我希望获得与以下示例相同的输出:

library(rlang)
a <- 10
quo(UQ(a) + 2 * b)
## <quosure: global>
## ~10 + 2 * b

但是从

开始
t <- "UQ(a) + 2 * b"

我尝试过这样的票价是:

# Trial 1:
quo(expr(t))

# Trial 2: 
parse_quosure(t)

# Trial 3:
quo(parse_quosure(t))

1 个答案:

答案 0 :(得分:3)

看起来这可能是expr_interp的工作。根据文档,它“在表达式中手动处理unquoting运算符......”。

因此,您可以先使用parse_quosure,然后通过expr_interp处理不引用的运算符。

expr_interp(parse_quosure(t))

<quosure: global>
~10 + 2 * b