R 比较后续行并查找重叠的时间间隔?
我有一个数据集,我们称之为“时间”:R 比较后续行并查找重叠的时间间隔?,r,dataframe,R,Dataframe,我有一个数据集,我们称之为“时间”: >Times如果你认为这是一个nxn比较,我想答案应该是某种不规则的频带矩阵。(如果频带矩阵不是您以前见过的术语,请查找。)此代码应测试第二列高端的重叠是否大于第一列,即重叠: Times <- read.table(text=" Num Start End 1 00:09:41 00:25:25 2 00:11:21 00:41:32 3 00:34:39
>Times如果你认为这是一个nxn比较,我想答案应该是某种不规则的频带矩阵。(如果频带矩阵不是您以前见过的术语,请查找。)此代码应测试第二列高端的重叠是否大于第一列,即重叠:
Times <- read.table(text="
Num Start End
1 00:09:41 00:25:25
2 00:11:21 00:41:32
3 00:34:39 00:58:01", stringsAsFactors=FALSE, header=TRUE)
mdat <- outer(Times$Start, Times$End, function(x,y) y > x)
mdat[upper.tri(mdat)|col(mdat)==row(mdat)] <- NA
mdat
#------------------
[,1] [,2] [,3]
[1,] NA NA NA
[2,] TRUE NA NA
[3,] FALSE TRUE NA
时报非常感谢您的帮助!那肯定管用。现在,我只需要找出一种方法,让它在一个数据帧中显示所有的“TRUE”——用“Num”、“Start”和“End”列省略那些不重叠的列。
Times <- read.table(text="
Num Start End
1 00:09:41 00:25:25
2 00:11:21 00:41:32
3 00:34:39 00:58:01", stringsAsFactors=FALSE, header=TRUE)
mdat <- outer(Times$Start, Times$End, function(x,y) y > x)
mdat[upper.tri(mdat)|col(mdat)==row(mdat)] <- NA
mdat
#------------------
[,1] [,2] [,3]
[1,] NA NA NA
[2,] TRUE NA NA
[3,] FALSE TRUE NA