我有一个数值类型的矩阵,大小为10000 * 50。现在我想找出每行前五个元素的索引,按其值的顺序排列。例如,样本可能如下:
set.seed(2)
v1 <- matrix(runif(20 , 0 ,20 ) , 2 ,10)
v1
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
#[1,] 3.697645 11.466527 18.87679 2.58318 9.36037 11.053481 15.210266 8.105644 19.527970 8.896185
#[2,] 14.047481 3.361038 18.86950 16.66898 10.99967 4.777895 3.616402 17.070969 4.516509 1.499588
然后我希望输出的结果看起来像这样:
#[1,] 9 3 7 2 6
#[2,] 3 8 4 1 5
我只找到了这个问题,它解释了如何找到前n个元素,但并不按值的顺序排列。
data.table
会很快,但可能是melt
(来自 reshape2)增加了时间。 - akrun