对R中稀疏矩阵的每列进行排序
我想知道我是否可以对稀疏矩阵的每一列进行快速排序(使用“矩阵”包)。稀疏矩阵约为10000 x 10000 示例:对R中稀疏矩阵的每列进行排序,r,sorting,matrix,R,Sorting,Matrix,我想知道我是否可以对稀疏矩阵的每一列进行快速排序(使用“矩阵”包)。稀疏矩阵约为10000 x 10000 示例: [,1] [,2] [,3] [,4] [1,] 1 . . . [2,] 2 2 . . [3,] . 1 . 1 [4,] . . 1 2 结果: [,1] [,2] [,3] [,4] [1,] 2 2 1 2 [2,] 1
[,1] [,2] [,3] [,4]
[1,] 1 . . .
[2,] 2 2 . .
[3,] . 1 . 1
[4,] . . 1 2
结果:
[,1] [,2] [,3] [,4]
[1,] 2 2 1 2
[2,] 1 1 . 1
[3,] . . . .
[4,] . . . .
我发现一些信息表明,存储在稀疏矩阵中的数据可能是基于列的,并且只存储非零元素,因此我想知道是否有一种快速方法可以对这些数据进行排序
我完全是一个新手,有没有快速的方法,或者我可以使用Rcpp操作数据,因为我更熟悉cpp。非常感谢
编辑: 使用apply(cosMat,2,sort),基准如下所示:
Unit: seconds
expr min lq mean median uq max neval
cosAns <- apply(cosMat, 2, sort) 1.741451 1.854026 1.877813 1.871355 1.896548 2.0143 100
单位:秒
expr最小lq平均uq最大neval
cosAns类似apply(matrix,2,sort)的东西?您是否尝试过直接对稀疏矩阵列进行排序?因为只存储非零元素,所以它可能已经以足够快的速度完成了您想要的任务(我猜)。干杯。@Niek我试过使用apply,但速度很慢,大约1.87分钟。可能是类似apply(matrix,2,sort)的东西吗?你试过直接对稀疏矩阵列排序吗?因为只存储非零元素,所以它可能已经以足够快的速度完成了您想要的任务(我猜)。干杯。@Niek我试过使用apply,但速度很慢,大约1.87分钟。