[R] vlookup type function
Petr Savicky
savicky at cs.cas.cz
Tue Feb 28 17:28:12 CET 2012
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.
More information about the R-help
mailing list