On Tue, Feb 28, 2012 at 09:02:04PM +0530, Priyan Fernando wrote: > Hi > > I''m looking for an Excel Vlookup type function in R. > > Example: > list <- c(1,2,3,4,5,6,7) > base <- c(2.2,3,5.2) > > What I want is, for each number in base, the highest value in list, > which is equal to or less than the number in base > > So the results would be: > > base list > 2.2 ------> 2 > 3 ------> 3 > 5.2 ------> 5
Hi. If "base" may contain numbers smaller than all numbers in "list", the the following modification of the previous suggestion does not generate a warning. list <- c(1,2,3,4,5,6,7) base <- c(0, 2.2, 3, 5.2, 8) unlist(lapply(base, FUN=function(x) max(list[list <= x], -Inf))) [1] -Inf 2 3 5 7 Hope this helps. Petr Savicky. ______________________________________________ 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.