我有一个看起来像这样的矩阵
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)
但我获得了一个数据框列表,其中包含出现而非一个矩阵。任何帮助将不胜感激
答案 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()
函数计算按列索引分组的元素的计数。