计算所有列中的出现次数

时间:2016-09-14 22:43:39

标签: r matrix count plyr

我有一个看起来像这样的矩阵

  

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

我想按列计算每个数字的出现次数,并写一个单独的矩阵,例如

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

其中每一行代表相应列的出现次数。我设法使用

按列计算出现次数
require(plyr)    
apply(mymat,2,count)

但我获得了一个数据框列表,其中包含出现而非一个矩阵。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:5)

你可以试试这个:

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

其中col给出矩阵中每个元素的列索引,并且可以使用table()函数计算按列索引分组的元素的计数。