[R] counting matched elements in two vectors

Hervé Pagès hpages at fhcrc.org
Fri Jan 24 02:13:26 CET 2014


On 01/23/2014 04:49 PM, Hervé Pagès wrote:
> Hi Mintewab,
>
> With the IRanges packages (from Bioconductor):
>
>    > library(IRanges)
>    > countMatches(z, w)
>     [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 3 1 1 0 1 0 0 0 0 0 0 1 3
> 2 0 0 1 0 0
>    [39] 0 0 0 0 0 0 0 0

And if you don't want to depend on IRanges for such a simple operation,
here how countMatches() is implemented:

   countMatches <- function(x, table)
   {
       table2 <- match(table, x)
       x2 <- match(x, x)
       tabulate(table2, nbins=length(x))[x2]
   }

Cheers,
H.

>
> To install the IRanges package:
>
>    source("http://bioconductor.org/biocLite.R")
>    biocLite("IRanges")
>
> Cheers,
> H.
>
>
> On 01/23/2014 07:43 AM, M.Bezabih at lse.ac.uk wrote:
>>     Hi all,
>> I have the following reproducible example
>>
>> z<-c(-5:40)
>> w<-c(11, 11, 12, 14, 14, 14, 15, 16, 18, 25, 26, 26, 26, 27, 27, 30)
>>   r<-z %in% w
>>
>> now r gives me the presence or absence of elements in z that are in w
>> but I am interested in getting the number of times each element in z
>> appears (or doesn't appear)  in w. I want the dimension of my
>> resulting vector to be the same as that of z. How do I do that?
>>
>>   Thanks in advance
>>   Mintewab
>>
>>
>> Please access the attached hyperlink for an important electronic
>> communications disclaimer: http://lse.ac.uk/emailDisclaimer
>>     [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> 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.
>>
>

-- 
Hervé Pagès

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpages at fhcrc.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319




More information about the R-help mailing list