通过连续的行值创建组ID

时间:2019-01-23 19:08:48

标签: r dplyr data.table

从更大的数据集中,我将列出满足特定条件(ID为“ 2”,在示例中为col2)的特定行。

我拥有的子集数据与此示例类似:

col1 = c("17:23", "16:17", "16:08", "16:05", "15:58", "6:33", "6:04", "6:02", "5:59", "5:55", "5:41", "2:01", "1:55", "1:30")
col2 = c("2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2")

col3 = c("1", "2", "3", "4", "5", "1", "2", "3", "4", "5", "6", "1", "2", "3")

test.df = cbind(col1, col2, col3) %>% as.data.frame()

在子集之前,我创建一个滚动序列ID(“ col3”),该ID标识较大数据帧中顺序排列的行。现在,在这个较小的子集数据框中,我想为每个分组的序列创建一个新的ID(即col3中行之间的差!= 1)。

最终结果:

col1   col2  col3  ID
17:23   2     1    1
16:17   2     2    1
16:08   2     3    1
16:05   2     4    1
15:58   2     5    1
6:33    2     1    2
6:04    2     2    2
6:02    2     3    2
 [...]
2:01    2     1    3

0 个答案:

没有答案