作者f496328mm (为什麽会流泪)
看板R_Language
标题[问题] 矩阵每列种类数量
时间Fri Aug 19 17:09:59 2016
[,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://webptt.com/cn.aspx?n=bbs/R_Language/M.1471597802.A.DE4.html
1F:推 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