【发布时间】:2021-03-26 09:33:43
【问题描述】:
我有一个数据框,其中一列表示文本lines,它们只是部分连续的:
df <- data.frame(
line = c("0001","0002", "0003", "0011","0012","0234","0235","0236")
)
我想根据连续的行号对行进行分组以获得这个预期结果:
df
line grp
1 0001 1
2 0002 1
3 0003 1
4 0011 2
5 0012 2
6 0234 3
7 0235 3
8 0236 3
我尝试使用dplyr 的lag 函数来解决这个问题,但被困在那里:
library(dplyr)
df %>%
mutate(line = as.numeric(line),
diff = abs(lag(line) - line))
【问题讨论】:
-
这里描述了
cumsum(...diff(...) <some-condition>)成语创建分组变量:Create grouping variable for consecutive sequences and split vector