枚举小标题中的分组变量

Enumerate a grouping variable in a tibble

我想知道如何使用 row_number 或其他任何方法将变量组转换为整数

tibble_test <- tibble(A = letters[1:10], group = c("A", "A", "A", "B", "B", "C", "C", "C", "C", "D"))

# to get the enumeration inside each group of 'group'
tibble_test %>% 
  group_by(group) %>% 
  mutate(G1 = row_number())


但我想要这样的输出:


# A tibble: 10 x 4
   A     group    G1    G2
   <chr> <chr> <dbl> <dbl>
 1 a     A         1     1
 2 b     A         2     1
 3 c     A         3     1
 4 d     B         1     2
 5 e     B         2     2
 6 f     C         1     3
 7 g     C         2     3
 8 h     C         3     3
 9 i     C         4     3
10 j     D         1     4

我的问题是:如何获得此列 G2,我知道我可以将 'group' var 转换为一个因子然后是整数(在排列 tibble 之后)但我想知道它是否可以使用计数完成。

您只需要再执行一步,将组索引包含在 group_indices() 中。请注意,您的数据 arranged/sorted 会影响索引。

library(dplyr)

tibble_test <- tibble(A = letters[1:10], group = c("A", "A", "A", "B", "B", "C", "C", "C", "C", "D"))

# to get the enumeration inside each group of 'group'
tibble_test %>% 
  group_by(group) %>% 
  mutate(G1 = row_number(),
         G2 = group_indices())

# A tibble: 10 x 4
# Groups:   group [4]
   A     group    G1    G2
   <chr> <chr> <int> <int>
 1 a     A         1     1
 2 b     A         2     1
 3 c     A         3     1
 4 d     B         1     2
 5 e     B         2     2
 6 f     C         1     3
 7 g     C         2     3
 8 h     C         3     3
 9 i     C         4     3
10 j     D         1     4