findInterval returns the index (into list) of what you want. Use [ to get the numbers at the bottom of the found intervals:
> list <- c(1,2,3,4,5,6,7) > base <- c(2.2,3,5.2) > findInterval(base, list) [1] 2 3 5 > findInterval(base+100, list+100) [1] 2 3 5 > (list+100)[.Last.value] [1] 102 103 105 Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf Of Priyan Fernando > Sent: Tuesday, February 28, 2012 7:32 AM > To: r-help@r-project.org > Subject: [R] vlookup type function > > 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 > > Thanks for your help! > > ______________________________________________ > 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.