[R] Is there a neat R trick for this?

Robert Latest boblatest at gmail.com
Tue Feb 12 11:09:34 CET 2013


Hello all,

given two vectors X and Y I'd like to receive a vector Z which
contains, for each element of X, the index of the corresponding
element in Y (or NA if that element isn't in Y).

Example:

x <- c(4,5,6)
y <- c(10,1,5,12,4,13,14)

z <- findIndexIn(x, y)
z
[1] 5 3 NA

1st element of z is 5, because the 1st element of x is at the 5th position in y
2nd element of z is 3, because the 2nd element of x is at the 3rd position in y
3rd element of z is NA, because the 3rd element of x is not in y

Of course I can write the function findIndexIn() using a for loop, but
in 80% of cases when I felt the urge to use "for" in R it turned out
that there was already some builtin operator or function that did the
trick.

Suggestions, anyone?
Thanks,

robert



More information about the R-help mailing list