# [R] counting occurances of matching rows in a matrix

Dimitris Rizopoulos dimitris.rizopoulos at med.kuleuven.be
Fri Jul 13 16:45:25 CEST 2007

```one way is the following (maybe there're better):

pats <- do.call(paste, c(as.data.frame(M), sep = "\r"))
pats <- factor(pats, levels = unique(pats))
cbind(unique(M), Freq = as.vector(table(pats)))

I hope it helps.

Best,
Dimitris

----
Dimitris Rizopoulos
Ph.D. Student
Biostatistical Centre
School of Public Health
Catholic University of Leuven

Tel: +32/(0)16/336899
Fax: +32/(0)16/337015
Web: http://med.kuleuven.be/biostat/
http://www.student.kuleuven.be/~m0390867/dimitris.htm

----- Original Message -----
From: "Balazs Torma" <torma at ilab.sztaki.hu>
To: <r-help at stat.math.ethz.ch>
Sent: Friday, July 13, 2007 4:11 PM
Subject: [R] counting occurances of matching rows in a matrix

>I need help regarding to the following problem:
>
> Consider this matrix:
>
>> M <- matrix(c(1,2, 4,3, 1, 2),3, 2, byrow=TRUE)
>> M
>     [,1] [,2]
> [1,]    1    2
> [2,]    4    3
> [3,]    1    2
>
> I would like to have a matrix which counts the identical rows and
> places the counts into its third column. I tried with ftable():
>
>> as.data.frame(ftable(M[,1], M[,2]))
>  Var1 Var2 Freq
> 1    1    2    2
> 2    4    2    0
> 3    1    3    0
> 4    4    3    1
>
> This would be exactly what I want without the 0-freq rows. The
> problem is that ftable() counts the occurances of all possible
> factor combinations, which is inproper because the real matrix is
> very long for which I want to count. (I know that I could filter out
> 0-frequencies afterwards but I would like ftable not to produce
> 0-frequencies unnecessarily (it would consume too much space)).
>
> I tried table() too, but I couldn't tell it that it should consider
> each row as one data point, and not all elements in the matrix
> separately:
>
>> as.data.frame(table(M))
>  M Freq
> 1 1    2
> 2 2    2
> 3 3    1
> 4 4    1
>
> Any help greatly appreciated!
> Balazs Torma
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help