将 `tidyeval` 与 exposition pipe operator 一起使用

using `tidyeval` with the exposition pipe operator

我似乎无法弄清楚如何将 magrittr 中的 %$% 运算符与 tidyeval 一起使用。这是此问题的最小可重现示例:

tabletidyeval

之外的说明运算符一起工作
library(magrittr)

print(mtcars %$% table(am))
#> am
#>  0  1 
#> 19 13

table 不适用于 tidyeval

的说明运算符
foo <- function(data, x) {
  # works with pipe operator
  print(data %>% dplyr::pull({{ x }}))

  # doesn't with exposition operator
  data %$% table({{ x }})
}

foo(mtcars, am)
#>  [1] 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1
#> Error in table({: object 'am' not found

dplyr::pull 对其参数使用整洁的评估。 table(作为基本 R 函数)没有。 这就是为什么 tidy evaluation 适用于前者而不适用于后者。这与管道运算符无关。