[R] overlapping intervals

Giovanni Coppola gcoppola at ucla.edu
Wed Oct 18 00:56:18 CEST 2006


Hello Jim,
thank you very much for this elegant code. It does exactly what I need.
I'll check findInterval as well.
Thanks again
Giovanni


On Oct 16, 2006, at 7:22 AM, jim holtman wrote:

> Here is a more general way that looks for the transitions:
>
>> series1<-cbind(Start=c(10,21,40,300),End=c(20,26,70,350))
>> series2<-cbind(Start=c(25,60,210,500),End=c(40,100,400,1000))
>> x <- rbind(series1, series2)
>> # create +1 for start and -1 for end
>> x.s <- rbind(cbind(x[,1], 1), cbind(x[,2], -1))
>> #sort by start times
>> x.s <- x.s[order(x.s[,1]),]
>> # cumsum is a count of the transitions
>> x.s <- cbind(x.s, cumsum(x.s[,2]))
>> # c(1,2) is start and c(-1,1) is the end of an overlap
>> cbind(x.s[x.s[,2] == 1 & x.s[,3] == 2, 1], x.s[x.s[,2] == -1 & x.s 
>> [,3] == 1, 1])
>     [,1] [,2]
> [1,]   25   26
> [2,]   40   40
> [3,]   60   70
> [4,]  300  350
>
>
> On 10/15/06, Giovanni Coppola <gcoppola at ucla.edu> wrote:
>> Hello everybody,
>>
>> I have two series of intervals, and I'd like to output the shared
>> regions.
>> For example:
>> series1<-cbind(Start=c(10,21,40,300),End=c(20,26,70,350))
>> series2<-cbind(Start=c(25,60,210,500),End=c(40,100,400,1000))
>>
>>  > series1
>>      Start End
>> [1,]    10  20
>> [2,]    21  26
>> [3,]    40  70
>> [4,]   300 350
>>  > series2
>>      Start  End
>> [1,]    25   40
>> [2,]    60  100
>> [3,]   210  400
>> [4,]   500 1000
>>
>> I'd like to have something like this as result:
>>  > shared
>>      Start End
>> [1,]    25  26
>> [2,]    60  70
>> [3,]   300 350
>>
>> I found this post, but the solution finds the regions shared across
>> all the intervals.
>> http://finzi.psych.upenn.edu/R/Rhelp02a/archive/59594.html
>> Can anybody help me with this?
>> Thanks
>> Giovanni
>>
>> ______________________________________________
>> R-help at stat.math.ethz.ch 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?



More information about the R-help mailing list