Here is one way of doing it: > c.i <- read.table(textConnection(" 17130612 17587118 + 17712302 18221688 + 21225764 21387314 + 25012714 30748348 + 33852816 34480192 + 36012944 36209144 + 36252300 36280276 + 36737468 36971144 + 43693832 43878548")) > > d.i <- read.table(textConnection(" 17712302 18100404 + 21203780 21387314 + 25012714 30748348 + 33852816 34384588 + 34794536 35996440")) > closeAllConnections() > > # setup data.frame for comparing > x <- rbind(data.frame(t=c.i$V1, oper=1, type='c'), + data.frame(t=c.i$V2, oper=-1, type='c'), + data.frame(t=d.i$V1,oper=1, type='d'), + data.frame(t=d.i$V2, oper=-1, type='d')) > > # put in time order > x <- x[order(x$t),] > # determine overlaps > x$over <- cumsum(x$oper) > x t oper type over 1 17130612 1 c 1 10 17587118 -1 c 0 2 17712302 1 c 1 19 17712302 1 d 2 24 18100404 -1 d 1 11 18221688 -1 c 0 20 21203780 1 d 1 3 21225764 1 c 2 12 21387314 -1 c 1 25 21387314 -1 d 0 4 25012714 1 c 1 21 25012714 1 d 2 13 30748348 -1 c 1 26 30748348 -1 d 0 5 33852816 1 c 1 22 33852816 1 d 2 27 34384588 -1 d 1 14 34480192 -1 c 0 23 34794536 1 d 1 28 35996440 -1 d 0 6 36012944 1 c 1 15 36209144 -1 c 0 7 36252300 1 c 1 16 36280276 -1 c 0 8 36737468 1 c 1 17 36971144 -1 c 0 9 43693832 1 c 1 18 43878548 -1 c 0 > # assuming that c & d don't overlap themselves, oper=2 indicate an overlap > overlap <- which(x$over == 2) > # print overlaps > for (i in overlap){ + print(x[i + c(-1,0,1,2),]) + } t oper type over 2 17712302 1 c 1 19 17712302 1 d 2 24 18100404 -1 d 1 11 18221688 -1 c 0 t oper type over 20 21203780 1 d 1 3 21225764 1 c 2 12 21387314 -1 c 1 25 21387314 -1 d 0 t oper type over 4 25012714 1 c 1 21 25012714 1 d 2 13 30748348 -1 c 1 26 30748348 -1 d 0 t oper type over 5 33852816 1 c 1 22 33852816 1 d 2 27 34384588 -1 d 1 14 34480192 -1 c 0 >
On Feb 1, 2008 4:03 PM, mohamed nur anisah <[EMAIL PROTECTED]> wrote: > hi!! > > Below I have 4 columns vector of c and d which are unequal in length.These c > and d have 2 columns each where these 2 columns represent an interval values. > How am I going to get an overlapping over these interval values?? Please help > me sort this problem!! Thanks in advance.. > > c d > 17130612 17587118 17712302 18100404 > 17712302 18221688 21203780 21387314 > 21225764 21387314 25012714 30748348 > 25012714 30748348 33852816 34384588 > 33852816 34480192 34794536 35996440 > 36012944 36209144 > 36252300 36280276 > 36737468 36971144 > 43693832 43878548 > > > --------------------------------- > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem you are trying to solve? ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.