看板 R_Language 關於我們 聯絡資訊
[,1] [,2] [,3] [,4] [,5] [1,] 1 6 2 7 5 [2,] 2 7 3 8 5 [3,] 3 8 4 9 5 [4,] 4 9 5 10 5 [5,] 5 10 6 11 5 舉例來說 data是上面那樣 我要算出每列有多少"種" 像第四列 4 9 5 10 5 有4種數字 code在這 我想要算出所有列的種類數 x=matrix( c(1:10,2:11,5,5,5,5,5) ,ncol=5 ) sapply(c(1:5), function(i) length( levels( factor( x[i,1:5] ) ) ) ) 我目前是先轉factor 然後取level 再算length 不過這樣效率很差 想問問看有沒有什麼比較好的寫法 目前我100萬筆要1.5min 我總data有2.6千萬筆 起碼要30min 感覺沒效率 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.166.200 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1471597802.A.DE4.html
carl090105: apply(x, 1, function(y) dplyr::n_distinct(y)) 08/19 17:50
感恩>.< 1百萬筆 時間變成25S 快很多 ※ 編輯: f496328mm (220.137.166.200), 08/19/2016 19:00:12