dplyr group_by列名的向量?

弗兰科夫

我曾经能够group_by_使用一个字符串作为列名(“标准评估”),但是现在不推荐使用。

> data(mtcars)
> mtcars %>% group_by_('mpg') %>% tally() %>% head(2)
# A tibble: 2 x 2
    mpg     n
  <dbl> <int>
1  10.4     2
2  13.3     1
Warning message:
`group_by_()` is deprecated as of dplyr 0.7.0.
Please use `group_by()` instead.
See vignette('programming') for more help

此外,似乎按多个列进行分组可能从未对group_by_起作用?

> mtcars %>% group_by_(c('mpg', 'cyl')) %>% tally() %>% head(2)
# A tibble: 2 x 2
    mpg     n
  <dbl> <int>
1  10.4     2
2  13.3     1

如何使用列名向量获得适当的计数?

例如,结果如下所示:

> mtcars %>% group_by(mpg, cyl) %>% tally() %>% head(2)
# A tibble: 2 x 3
# Groups:   mpg [2]
    mpg   cyl     n
  <dbl> <dbl> <int>
1  10.4     8     2
2  13.3     8     1

但使用c('mpg', 'cyl')

编辑:使用dplyr 1.0.0。

阿克伦

我们可以使用group_byacrossdplyr版本> = 1.0.0

library(dplyr)
mtcars %>% 
     group_by(across(all_of(c('mpg', 'cyl')))) %>% 
     tally() %>%
     head(2)
# A tibble: 2 x 3
# Groups:   mpg [2]
#    mpg   cyl     n
#  <dbl> <dbl> <int>
#1  10.4     8     2
#2  13.3     8     1

对于旧版本,请使用 group_by_at

mtcars %>%
   group_by_at(c('mpg', 'cyl')) %>%
   tally() %>%
   head(2)
# A tibble: 2 x 3
# Groups:   mpg [2]
#    mpg   cyl     n
#  <dbl> <dbl> <int>
#1  10.4     8     2
#2  13.3     8     1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章