用dplyr编程; quo,enquo,!!等

时间:2018-01-11 22:47:14

标签: r dplyr

我在尝试将dplyr与函数一起使用时遇到了奇怪的错误。我跟随" Programming with dplyr"指导,但我看到了奇怪的错误。这是我基于自己的程序的示例代码:

library(tidyverse)

df <- tibble(
  g1 = c(1, 1, 2, 2, 2),
  g2 = c(1, 2, 1, 2, 1),
  a = sample(5), 
  b = sample(5)
)


my_summarise <- function(df, group_var) {
  df %>%
    group_by(!!group_var) %>%
    summarise(a = mean(a))
}

my_summarise(df, quo(g1))

示例代码应该返回

#> # A tibble: 2 x 2
#>      g1        a
#>   <dbl>    <dbl>
#> 1     1 2.500000
#> 2     2 3.333333

但是返回

Error: invalid argument type
Called from: mutate_impl(.data, dots)

有什么问题或我错过了一揽子计划吗?当我按照链接指南的后续说明操作时,我也会观察到此错误,并使用函数内的my_summarise(df, g1)来调用enquo(group_var)

编辑:旧版本的dplyr发生错误。以上不会为dplyr 0.7.4抛出错误

0 个答案:

没有答案