[R] vlookup in R
David Winsemius
dwinsemius at comcast.net
Mon Mar 24 16:19:47 CET 2008
Sachin J <sachinj.2006 at yahoo.com> wrote in
news:897147.50760.qm at web37606.mail.mud.yahoo.com:
> Is there are function similar to excel vlookup in R. Please let me
> know.
>
Caveat: definition of VLOOKUP done from memory and by checking OO.o
Calc function of same name. (Don't have Excel on this machine.)
VLOOKUP looks up a single value in the first column of an Excel range
and returns a column value (offset by a given integer) from the first
matching row in that "range". The indexing functions ("extract" or
"[" ) can be used:
> df4
V1 V2 V3
1 4.56 1 0.1
2 8.42 1 0.2
3 0.79 3 0.3
4 5.39 3 0.4
5 0.95 4 0.5
6 7.73 5 0.6
7 7.17 6 0.7
8 3.89 7 0.8
9 0.54 10 1.0
10 9.53 9 0.9
> df4[df4$V1==0.79,2]
[1] 3
vlookup <- function(val, df, row){
df[df[1] == val, row][1] }
> vlookup(0.79, df4, 2)
[1] 3
I thought there was an optional 4th argument to VLOOKUP that specifies
the action to be taken if there is no exact match. You may need to
change the equality in that function to an inequality and identify the
first column value that is less than or equal to "val". If I remember
correctly, Excel assumes that the first column is ordered ascending.
--
David Winsemius
More information about the R-help
mailing list