dplyr 中 quo() 的倒数

Inverse of quo() in dplyr

使用 dplyr 0.7.4 的新 quosure 语法,我相信我应该能够做类似 !!quo(1)(预期 1)的事情,但它 returns 错误

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

为什么这行不通? (请注意,在 base R 中,可以做到 eval(quote(1))。dplyr 模拟是什么?)

... !! 是否仅在 dplyr 函数中定义?

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

eval 等价于 rlang::eval_tidy:

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