我正在寻找一种简单的方法来计算数量
大二进制matrix
中的唯一组合。
如果我有以下matrix
:
m = matrix(c(1,0,1,1,1,1,1,0,1,1,0,1), ncol=3, byrow=TRUE)
我想得到以下输出:
[,1] [,2] [,3] [,4]
[1,] 1 0 1 3
[2,] 1 1 1 1
因此该函数应该计算列的唯一组合的数量 - 有三行包含1,0,1,一行包含1,1,1。
对象类型不固定(即它可以是data.frame
,data.table
,等等。
我想避免必须手动指定列数来计算
如果可能的话(即我可以提供带有相应列名的字符向量,或者使用整个矩阵)。
我知道必须有一个解决方案,但我的谷歌似乎很弱。
答案 0 :(得分:2)
一种方法是使用count
中的plyr
:
library(plyr)
count(m, 1:ncol(m))
# x.1 x.2 x.3 freq
#1 1 0 1 3
#2 1 1 1 1