[R] finding those elements of listA that are found in listB

Richard M. Heiberger rmh at temple.edu
Thu Sep 17 05:33:22 CEST 2015


I think you are looking for match or %in% (which is a based on match)

> a <- sample(12)
> b <- c(1, 3, 5, 11, 17)
> a
 [1] 10  8  1  4  7  3  6 11  2 12  5  9
> b
[1]  1  3  5 11 17
> [1] 1
> match(a, b)
 [1] NA NA  1 NA NA  2 NA  4 NA NA  3 NA
> match(a, b, 0)
 [1] 0 0 1 0 0 2 0 4 0 0 3 0
> match(b, a)
[1]  3  6 11  8 NA
> match(b, a, 0)
[1]  3  6 11  8  0
> a %in% b
 [1] FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE FALSE
> b %in% a
[1]  TRUE  TRUE  TRUE  TRUE FALSE
>

Rich

On Wed, Sep 16, 2015 at 10:43 PM, John Sorkin <JSorkin at grecc.umaryland.edu>
wrote:

> I have two structures. I think they are lists, but I am not sure. Both
> structures contain integers. I am trying to find those members of list b
> that are found in list a. I have tried to perform the search using grep,
> but I get an error. Please see code below. I would appreciate knowing how
> to search listB for any element in listA
> Thanks
> John
>
>
> > str(listA)
>  int [1:42] 13083 13705 14123 14168 14382 14652 14654 14678 14817 14822 ...
> > str(listB)
>  int [1:633] 13083 13083 13083 13083 13083 13083 13705 13705 13705 13705
> ...
> > grep(listA,listB)
> [1] 1 2 3 4 5 6
> Warning message:
> In grep(listA, listB) :
>   argument 'pattern' has length > 1 and only the first element will be used
>
>
>
>
>
>
>
>
>
> John David Sorkin M.D., Ph.D.
> Professor of Medicine
> Chief, Biostatistics and Informatics
> University of Maryland School of Medicine Division of Gerontology and
> Geriatric Medicine
> Baltimore VA Medical Center
> 10 North Greene Street
> GRECC (BT/18/GR)
> Baltimore, MD 21201-1524
> (Phone) 410-605-7119
> (Fax) 410-605-7913 (Please call phone number above prior to faxing)
>
>
> Confidentiality Statement:
> This email message, including any attachments, is for ...{{dropped:16}}



More information about the R-help mailing list