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 <t...@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@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. > ______________________________________________ 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.