[R] Intersection of two sets of intervals

Stavros Macrakis macrakis at alum.mit.edu
Wed Apr 15 15:37:01 CEST 2009


There is a very nice "intervals" package in CRAN.  It is impressively
efficient even for intersections of many millions of intervals.  If I
remember correctly, it is purely in-core, so on a 32-bit R you'll be
limited to something like 100 million intervals.  Is that enough for
your application?

              -s

On Wed, Apr 15, 2009 at 8:59 AM, Thomas Meyer <tm35 at cornell.edu> wrote:
> Hi,
>
> Algorithm question: I have two sets of "intervals", where an interval is an
> ordered pair [a,b] of two numbers. Is there an efficient way in R to
> generate the intersection of two lists of same?
>
> For concreteness: I'm representing a set of intervals with a data.frame:
>
>> list1 = as.data.frame(list(open=c(1,5), close=c(2,10)))
>> list1
>  open close
> 1    1     2
> 2    5    10
>
>> list2 = as.data.frame(list(open=c(1.5,3), close=c(2.5,10)))
>> list2
>  open close
> 1  1.5   2.5
> 2  3.0  10.0
>
> How do I get the intersection which would be something like:
>  open close
> 1  1.5   2.0
> 2  5.0  10.0
>
> I wonder if there's some ready-built functionality that might help me out.
> I'm new to R and am still learning to vectorize my code and my thinking. Or
> maybe there's a package for interval arithmetic that I can just pull off the
> shelf.
>
> Thanks,
>
> -tom
>
> --
> Thomas Meyer
>
> ______________________________________________
> R-help at 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.
>




More information about the R-help mailing list