simone
simone

Reputation: 577

counting occurrences in all columns

I have a matrix that looks like this

mymat

A   B   C   D   E   F
9   9   9   9   9   9
1   1   1   6   1   6
1   1   1   6   1   9
1   1   1   6   1   9
1   1   1   6   1   6

I want to count occurrences of each number by column, and write a separate matrix such as

n1 n6 n9
4  0  1
4  0  1
4  0  1
0  4  1
4  0  1
0  2  3

Where each row represents occurrences of the respective column. I managed to count occurrences by column using

require(plyr)    
apply(mymat,2,count)

But I obtain a list of data frame with occurrences rather that one matrix. Any help would be much appreciated

Upvotes: 1

Views: 144

Answers (1)

akuiper
akuiper

Reputation: 214987

You can try this:

table(col(mymat), mymat)

#   mymat
#    1 6 9
#  1 4 0 1
#  2 4 0 1
#  3 4 0 1
#  4 0 4 1
#  5 4 0 1
#  6 0 2 3

where col gives the column index for each element in the matrix, and a count of the element grouped by the column index can be calculated with the table() function.

Upvotes: 5

Related Questions