[R] select same row in a data frame several times

Rolf Turner r.turner at auckland.ac.nz
Fri Nov 14 23:20:09 CET 2014


On 15/11/14 10:45, Pedro Mardones wrote:
> Dear R user;
>
> Consider the following toy example
>
> A <- data.frame(ID1 = c(1,2,3,1,2,3,1,2,3), ID2 =
> c("a","b","c","d","e","f","g","h","i"), stringsAsFactors = FALSE)
> B <- sample(a$ID2, 6, replace = TRUE)
>
> Lets say B is = "a", "a", "a", "h", "b", "e"
>
> I want to extract from A the rows where ID2 == B. If I use
> AA <- A[A$ID2 %in% B == TRUE,], I get only 1 row with ID2="a" instead of
> the 3 rows I want.
>
> Is it possible to easily implement this selection? (same row several times)

AA <- A[match(B,A$ID2),]

cheers,

Rolf Turner

P.S. The syntax "A$ID2 %in% B == TRUE" is a message brought to you by 
the Department of Redundancy Department, and it drives me _crazy_!  Just 
use "A$ID2%in%B,".

If "v" is a logical vector then "v==TRUE" is identical to v.

See fortune(69).

R. T.

-- 
Rolf Turner
Technical Editor ANZJS



More information about the R-help mailing list