This is faster for small vectors
> system.time(for (i in 1:1000) + colSums(outer(y, x, `<`)) + ) user system elapsed 0.11 0.00 0.11 > system.time(for (i in 1:1000) + sapply(x,FUN=function(i) {length(which(y<i))}) + ) user system elapsed 0.14 0.00 0.16 > > colSums(outer(y, x, `<`)) [1] 0 0 0 0 1 2 2 3 3 4 > sapply(x,FUN=function(i) {length(which(y<i))}) [1] 0 0 0 0 1 2 2 3 3 4 > Rich On Thu, Apr 14, 2011 at 3:34 PM, Kevin Ummel <kevinum...@gmail.com> wrote: > Take vector x and a subset y: > > x=1:10 > > y=c(4,5,7,9) > > For each value in 'x', I want to know how many elements in 'y' are less > than 'x'. > > An example would be: > > sapply(x,FUN=function(i) {length(which(y<i))}) > [1] 0 0 0 0 1 2 2 3 3 4 > > But this solution is far too slow when x and y have lengths in the > millions. > > I'm certain an elegant (and computationally efficient) solution exists, but > I'm in the weeds at this point. > > Any help is much appreciated. > > Kevin > > University of Manchester > > > > > > > > > Take two vectors x and y, where y is a subset of x: > > x=1:10 > > y=c(2,5,6,9) > > If y is removed from x, the original x values now have a new placement > (index) in the resulting vector (new): > > new=x[-y] > > index=1:length(new) > > The challenge is: How can I *quickly* and *efficiently* deduce the new > 'index' value directly from the original 'x' value -- using only 'y' as an > input? > > In practice, I have very large matrices containing the 'x' values, and I > need to convert them to the corresponding 'index' if the 'y' values are > removed. > > > > > [[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<http://www.r-project.org/posting-guide.html> > and provide commented, minimal, self-contained, reproducible code. > [[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.