[R] vlookup type function

William Dunlap wdunlap at tibco.com
Tue Feb 28 17:26:17 CET 2012


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-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Priyan Fernando
> Sent: Tuesday, February 28, 2012 7:32 AM
> To: r-help at 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 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.



More information about the R-help mailing list