我该如何计算col2
?
col2
col1
每次被不同值中断后出现的值都应该递增,例如创建一个每次新序列开始时都会更改的分组变量。
structure(list(col1 = c("A", "A", "A", "A", "B", "B", "B", "C",
"C", "C", "C", "A", "A", "E", "E", "E", "F", "F", "F", "G", "G",
"G", "C", "C", "C", "A", "A", "A"), col2 = c(1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L)), class = "data.frame", row.names = c(NA,
-28L))
期望的输出:
col1 col2
1 A 1
2 A 1
3 A 1
4 A 1
5 B 1
6 B 1
7 B 1
8 C 1
9 C 1
10 C 1
11 C 1
12 A 2
13 A 2
14 E 1
15 E 1
16 E 1
17 F 1
18 F 1
19 F 1
20 G 1
21 G 1
22 G 1
23 C 2
24 C 2
25 C 2
26 A 3
27 A 3
28 A 3
一种选择是使用
consecutive_id
两次,如下所示:rle
使用+的基本 R 选项ave
给出
还有一个脆弱的
base
功能在警告的烟雾散去之后,给出