我在df$V1
中有一个序列,从某个数字开始并增加。在某些时候,它会下降,表明对一个新组的观察已经开始。我想用组号替换V1
(或创建一个新列)。有什么方法可以做到这一点?我尝试了各种dplyr
技巧无济于事,并在这里和其他地方进行了搜索,并没有发现类似的问题。 想知道是否有一种光滑的dplyr方式来做到这一点。感谢您的任何见解。
数据框大约有350行。这是一个子集:
> df
V1 V2 V3 V4 V5 V6
1 1 5 9 1 2 14
2 2 5 10 1 3 9
3 3 5 11 1 4 4
4 4 5 15 1 5 7
5 5 5 18 1 6 14
6 6 5 22 1 7 6
27 1 5 9 1 2 14
28 21 9 10 2 3 4
29 22 9 11 2 4 6
30 23 9 15 2 5 1
31 24 9 18 2 6 7
32 25 9 22 2 7 14
33 26 9 24 2 8 6
34 27 9 25 2 9 7
35 28 9 26 2 10 6
我希望它看起来像这样(或group
中添加new.df
作为一个添加的列):
> new.df
group V2 V3 V4 V5 V6
1 1 5 9 1 2 14
2 1 5 10 1 3 9
3 1 5 11 1 4 4
4 1 5 15 1 5 7
5 1 5 18 1 6 14
6 1 5 22 1 7 6
27 2 5 9 1 2 14
28 2 9 10 2 3 4
29 2 9 11 2 4 6
30 2 9 15 2 5 1
31 2 9 18 2 6 7
32 2 9 22 2 7 14
33 2 9 24 2 8 6
34 2 9 25 2 9 7
35 2 9 26 2 10 6
这是加载到R会话的初始数据框:
df <- read.table(header=TRUE, text="
V1 V2 V3 V4 V5 V6
1 5 9 1 2 14
2 5 10 1 3 9
3 5 11 1 4 4
4 5 15 1 5 7
5 5 18 1 6 14
6 5 22 1 7 6
1 5 9 1 2 14
21 9 10 2 3 4
22 9 11 2 4 6
23 9 15 2 5 1
24 9 18 2 6 7
25 9 22 2 7 14
26 9 24 2 8 6
27 9 25 2 9 7
28 9 26 2 10 6
")