在dplyr中反转quo()

时间:2018-03-01 21:26:01

标签: r dplyr rlang quosure

使用dplyr 0.7.4的新quosure语法,我相信我应该可以执行类似!!quo(1)(期待1)的操作,但它会返回错误

library(dplyr)
!!quo(1)
Error in !quo(1) : invalid argument type

为什么这不起作用? (注意,在基数R中,可以做eval(quote(1))。什么是dplyr模拟?)

...仅在{dplyr函数中定义!!

1 个答案:

答案 0 :(得分:3)

!!仅在知道tidyeval framework的函数中定义,是的。在普通的R代码中,它表示两个连续的!' s(逻辑非)。

相当于eval将是rlang::eval_tidy

eval_tidy(quo(42))
# [1] 42