[问题] 矩阵每列种类数量

楼主: f496328mm (为什么会流泪)   2016-08-19 17:09:59
[,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
感觉没效率
谢谢
作者: carl090105 (Jing)   2016-08-19 17:50:00
apply(x, 1, function(y) dplyr::n_distinct(y))

Links booklink

Contact Us: admin [ a t ] ucptt.com