有没有办法从字符串中解析和评估 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))
看起来这可能是一份工作expr_interp
。根据文档,它“手动处理表达式中的取消引用运算符......”。
因此,您可以先使用parse_quosure
然后通过expr_interp
.
expr_interp(parse_quosure(t))
<quosure: global>
~10 + 2 * b
一种方法是使用parse
to 转换t
为表达式并eval
对其进行评估。
eval(parse(text = paste0("quo(",t,")")))
#<quosure: global>
#~10 + 2 * b