如何枚举 R 中的组?

How to enumerate groups in R?

我可以使用哪个本机 R 函数或任何其他库中的哪个函数来列出下图中的列?

数据集

lines = "Group
C
C
C
B
B
A
A
A
A
A
A
D
D
D
D
"

dataset = read.table(textConnection(lines), sep=";", h=T)

尝试使用来自 dplyrcur_group_id():

library(dplyr)
#Code 1
newdf <- dataset%>% 
  mutate(Group=factor(Group,levels = unique(Group),ordered = T)) %>%
  group_by(Group) %>% mutate(Num=cur_group_id())

输出:

# A tibble: 15 x 2
# Groups:   Group [4]
   Group   Num
   <ord> <int>
 1 C         1
 2 C         1
 3 C         1
 4 B         2
 5 B         2
 6 A         3
 7 A         3
 8 A         3
 9 A         3
10 A         3
11 A         3
12 D         4
13 D         4
14 D         4
15 D         4

或使用base R:

#Code 2
dataset$Num <- as.integer(factor(dataset$Group,levels = unique(dataset$Group)))

输出:

   Group Num
1      C   1
2      C   1
3      C   1
4      B   2
5      B   2
6      A   3
7      A   3
8      A   3
9      A   3
10     A   3
11     A   3
12     D   4
13     D   4
14     D   4
15     D   4