Friday 15 January 2010

comparing and finding overlap range in R -



comparing and finding overlap range in R -

i have 2 tables each of them including range of numbers. 1 table subdivision of other. want create binary column in first table shows in range overlapped.

for example:

df1: start1 end1 1 6 6 8 9 12 13 15 15 19 19 20 df2: start2 end2 2 4 9 11 14 18

result: result first table column shows if overlap exists.

start1 end1 overlap 1 6 1 6 8 0 9 12 1 13 15 1 15 19 1 19 20 0

thanks.

you may seek foverlaps data.table

library(data.table) setkey(setdt(df1), start1, end1) setkey(setdt(df2), start2, end2) df1[,overlap:=foverlaps(df1, df2, which=true)[, !is.na(yid),]+0] df1 # start1 end1 overlap #1: 1 6 1 #2: 6 8 0 #3: 9 12 1 #4: 13 15 1 #5: 15 19 1 #6: 19 20 0

r overlap

No comments:

Post a Comment