枚举枚举中的分组变量

问题描述 投票:0回答:1

我想知道如何使用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转换为一个因子然后为整数(在排列小数之后),但是我想知道是否可以使用计数来完成。

r dplyr row-number
1个回答
1
投票

您只需要再执行一步,并在group_indices()中包含组索引。请注意,您的数据如何安排/排序将影响索引。

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
© www.soinside.com 2019 - 2024. All rights reserved.