使用dplyr添加子组的增量计数

使用dplyr添加子组的增量计数,r,dplyr,tidyr,R,Dplyr,Tidyr,如果我有一个分组: mtcars %>% group_by(cyl,carb) 如何添加一列来计算唯一组组合的数量;那么cyl组中的carb组?这将类似于: cyl carb combination 6 2 1 6 4 2 6 6 3 4 2 1 4 4 2 4 6 3 有很多方法可以做到这一点,我就是这样做的: library(dplyr) mtcars %>% group_by(cyl,c

如果我有一个分组:

 mtcars %>% group_by(cyl,carb)
如何添加一列来计算唯一组组合的数量;那么
cyl
组中的
carb
组?这将类似于:

cyl carb combination
6     2    1
6     4    2
6     6    3
4     2    1
4     4    2
4     6    3

有很多方法可以做到这一点,我就是这样做的:

library(dplyr)

mtcars %>% group_by(cyl,carb) %>% summarize("count" = length(carb))

也许有更好的方法避免n列,但下面应该是一个好的开始:

mtcars %>% count(cyl,carb) %>% group_by(cyl) %>% mutate(combination=1:n()) 
# A tibble: 9 x 4
# Groups:   cyl [3]
    cyl  carb     n combination
  <dbl> <dbl> <int>       <int>
1     4     1     5           1
2     4     2     6           2
3     6     1     2           1
4     6     4     4           2
5     6     6     1           3
6     8     2     4           1
7     8     3     3           2
8     8     4     6           3
9     8     8     1           4
mtcars%%>%count(cyl,carb)%%>%groupby(cyl)%%>%mutate(组合=1:n())
#一个tibble:9x4
#组别:共青团[3]
cyl-carb-n组合
1     4     1     5           1
2     4     2     6           2
3     6     1     2           1
4     6     4     4           2
5     6     6     1           3
6     8     2     4           1
7     8     3     3           2
8     8     4     6           3
9     8     8     1           4

您是否需要
mtcars%%>%group\u by(cyl,carb)%%>%mutate(count=row\u number())
还是
mtcars%%>%group\u by(cyl,carb)%%>%summary(count=n())
。预期的输出正确吗?我认为我最初的问题模棱两可。我已经试着说得更清楚了!很抱歉,这可能是
mtcars%%>%group\u by(cyl)%%>%summary(carb=n\u distinct(carb))
,但是如果不正确,仍然不清楚预期结果,而不是
,这可能是这样的:
,你能添加准确的预期结果吗?我想你需要类似
mtcars%%distinct(cyl,carb)%%>%(cyl,carb)%%>%group\U by(cyl)%%>%mutate(comb=row\U number())%%>%ungroup()
这不会产生OP给出的所需输出。