我試圖使用R中庫plyr
的count
函數來計算出現的特定數字組合的頻率。使用plyr計數頻率
例如,我想知道1號和2號一起出現的頻率。
N1 N2 N3
1 1 2 5
2 2 1 4
3 2 4 3
4 3 1 2
5 2 3 1
6 3 1 4
因此,對於像上面的一個數據幀,我不得不列1和第2列,列1和3列2和3相結合,併合並他們。然後我爲合併的數據幀執行「計數」。
combined1_2 = cbind(df$N1,df$N2)
combined1_3 = cbind(df$N1,df$N3)
combined2_3 = cbind(df$N2,df$N3)
combined_all = rbind(freq1_2,freq1_3,freq2_3)
combined_freq = count(combined_all)
所以當我檢查頻率表時,我得到了以下結果(只顯示了部分結果)。
x1 x2 Freq
1 1 2 2
2 2 1 2
問題是計數函數處理的數字「1和2」不同於「2和1」。所以我想知道在R中是否有任何功能可以解決這個問題,併產生如下所示的正確結果。
x1 x2 Freq
1 1 2 4
感謝您的解決方案!它節省了必須組合每個列的過程。我想知道是否有一種簡單的方法可以寫出1到40之間的任意兩個數字之間的所有組合。或者使用循環來替換c(1,2)部分到c(i,i + n)的唯一解決方案, ? – 1stclassmelon
@ 1stclassmelon不客氣:-)。或許用'combn'來解答你的第二個問題? – Cath