【发布时间】:2021-11-21 17:32:18
【问题描述】:
我有一个按 ID 排序的data.frame,其中有一列数值,我想将这些数值分成组,仅当超过某个目标值/触发器时才增加组号。我在seq()、seq_along() 或data.table cumsum() 上都没有成功,但我相信一定有办法
示例data.frame 与下面的所需组列。在此示例中,生成 group 列的序列应该仅在 value 列中出现 >= 300 的数字时增加。
dat = data.frame(ID=1:10, value=c(0,2,1,12,68,300,41,0,72959,51), group=c(1,1,1,1,1,2,2,2,3,3))
> dat
ID value group
1 1 0 1
2 2 2 1
3 3 1 1
4 4 12 1
5 5 68 1
6 6 300 2
7 7 41 2
8 8 0 2
9 9 72959 3
10 10 51 3
【问题讨论】:
标签: r data.table grouping seq cumsum