在R中查找组内连续行之间的差异
我是R的新手。我的数据帧如下所示:在R中查找组内连续行之间的差异,r,dataframe,R,Dataframe,我是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
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
任何小小的帮助都将不胜感激。提前感谢我们可以尝试使用
数据表
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
我得到的是
100-34=66
而不是78。请详细说明从输入到输出的过程。我想计算组内条目之间差距的开始和结束。对于“组”A中的eg,前两个条目之间的开始和结束间隔为78和99。类似地,第二个和第三个条目之间的间隙的起点和终点分别为141和184,依此类推。简而言之,我想找出第一个条目(77)的“结束”和下一个条目(99)的开始之间的差距。@Chudar更新了帖子。请检查这是否有帮助