使用序列的组编号替换数据框中的重新启动序列

时间:2018-03-19 14:33:37

标签: r dataframe dplyr sequence

我在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
")

0 个答案:

没有答案