Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对R中稀疏矩阵的每列进行排序_R_Sorting_Matrix - Fatal编程技术网

对R中稀疏矩阵的每列进行排序

对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

我想知道我是否可以对稀疏矩阵的每一列进行快速排序(使用“矩阵”包)。稀疏矩阵约为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     .     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分钟。