首页 > 解决方案 > 按所有变量计数/用 dplyr 区分计数

问题描述

说我有这个data.frame

library(dplyr)
df1 <- data.frame(x=rep(letters[1:3],1:3),y=rep(letters[1:3],1:3))
#   x y
# 1 a a
# 2 b b
# 3 b b
# 4 c c
# 5 c c
# 6 c c

我可以通过提及名称轻松分组和计数:

df1 %>%
  count(x,y)
# A tibble: 3 x 3
#        x      y     n
#   <fctr> <fctr> <int>
# 1      a      a     1
# 2      b      b     2
# 3      c      c     3

如何以最紧凑/可读的方式对所有内容进行分组而不提及单个列名?

标签: rdplyr

解决方案


我们可以将输入本身传递给...参数并将其拼接!!!

df1 %>% count(., !!!.) 
#>   x y n
#> 1 a a 1
#> 2 b b 2
#> 3 c c 3

注意:查看编辑历史以了解一些评论

有了基础,我们可以做到:aggregate(setNames(df1[1],"n"), df1, length)


推荐阅读