这是新的 dplyr,即将发布 Real Soon Now。
dplyr编程小插图给出了一个group_by
使用外部函数中指定的分组变量进行调用的示例:
my_summarise <- function(df, group_var) {
df %>%
group_by(!!group_var) %>%
summarise(a = mean(a))
}
这在提供单个分组变量时有效。但是,它因多个变量而失败。
简化示例:
f <- function(x)
{
group_by(mtcars, !!x)
}
## works
g1 <- "cyl"
f(g1)
## doesn't work
#Error in mutate_impl(.data, dots) :
# Column `c("cyl", "gear")` must be length 32 (the number of rows) or one, not 2
g2 <- c("cyl", "gear")
f(g2)
在 rlang 框架内,我该如何解决这个问题?
理想情况下,我希望f
' 的签名保持不变,即我将分组变量指定为单个向量,而不是通过...
参数。