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
使用 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