2016-10-04 63 views
-2

我正在尋找一種簡單的方法來計算大型二進制matrix中 唯一組合的數量。計算R中不同列組合的數量

如果我有以下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.framedata.table,無論如何)。 我想避免必須指定列,以便手動計算,如果可能的話 (即我可以提供具有相應列名的字符向量,或使用整個矩陣)。

我知道必須有解決方案,但我的谷歌福似乎很弱。

+1

哪裏'3'從何而來? – 989

回答

2

一種方法是使用countplyr

library(plyr) 
count(m, 1:ncol(m)) 

# x.1 x.2 x.3 freq 
#1 1 0 1 3 
#2 1 1 1 1 
+1

非常感謝你 - 我試過這樣做,最後 我在工作區中遇到了名字衝突。 它完美的作品 – user680111