我是R.的新手。我有一个如下数据框:
group start end
A 34 77
A 100 140
A 185 246
B 60 98
B 146 186
C 250 315
C 411 489
C 510 550
C 601 662
我想找到连续行之间的区别如下:
group start end
A 78 99
A 141 184
B 99 145
C 316 410
C 490 509
C 551 600
任何小小的帮助都将受到高度赞赏。提前致谢
答案 0 :(得分:2)
我们可以尝试data.table
library(data.table)
setDT(df1)[,.(start = (start+end - start +1)[-.N],
end = (end +shift(start, type='lead')-end-1)[-.N] ) , by = group]
# group start end
#1: A 78 99
#2: A 141 184
#3: B 99 145
#4: C 316 410
#5: C 490 509
#6: C 551 600