infochat at gmx.net
2011-May-19 09:58 UTC
[R] vectorial search for elements with certain attributes
I have 2 vectors A and B. For each element of B I'd like to find the index of the next higher or equal element in A. And I'd like to store it effectiv. E.g.: A <- c(1,3,7,8,10) B <- c(5,8) result: 3, 4 I have a possibility but for long vectors it works not very effectiv: ans <- sapply(B, function(x) which.max(A[A < x]) ) as.integer(ans + 1) Is there anyone how has a better idea? Thank you for your help, Thomas. --
Dennis Murphy
2011-May-19 18:37 UTC
[R] vectorial search for elements with certain attributes
Hi: Here's one possible approach: A <- c(1,3,7,8,10) B <- c(5,8) apply(outer(A, B, '-'), 2, function(x) min(which(x >= 0))) [1] 3 4 HTH, Dennis On Thu, May 19, 2011 at 2:58 AM, <infochat at gmx.net> wrote:> I have 2 vectors A and B. For each element of B I'd like to find the index of the next higher or equal element in A. And I'd like to store it effectiv. E.g.: > A <- c(1,3,7,8,10) > B <- c(5,8) > > result: 3, 4 > > I have a possibility but for long vectors it works not very effectiv: > > ans <- sapply(B, function(x) which.max(A[A < x]) ) > as.integer(ans + 1) > > Is there anyone how has a better idea? > Thank you for your help, > Thomas. > -- > > ______________________________________________ > 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. >