[R] counting occurances of matching rows in a matrix
Balazs Torma
torma at ilab.sztaki.hu
Fri Jul 13 16:11:39 CEST 2007
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
More information about the R-help
mailing list