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

Pascal Oettli kridox at ymail.com
Tue Feb 12 11:20:31 CET 2013


Hello,

?match

 > x <- c(4,5,6)
 > y <- c(10,1,5,12,4,13,14)
 > match(x,y)
[1]  5  3 NA

Hope this helps,
Pascal


Le 12/02/2013 19:09, Robert Latest a écrit :
> 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
>
> ______________________________________________
> 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