在R中对大矩阵进行排序

时间:2018-03-28 21:41:08

标签: r sorting matrix

我有一个非常大的方阵。我想找到一个有效的方法来获得一些" top"来自矩阵的(最小或最大)值,但保留行/列。使用较小的矩阵,我可以执行以下操作:

m <- matrix(rnorm(100), ncol=10, nrow=10)
m <- cbind(as.vector(m), as.vector(col(m)), as.vector(row(m)))
head(m[ order(m[,1]), ])

然而,如果矩阵非常大,这是不实际的。有更好,更有效的方式吗?

1 个答案:

答案 0 :(得分:1)

您必须使用矩阵创建数据框,然后根据自己的喜好进行排序。

然后,最好的方法不是查看矩阵的顺序,而是创建数据框并订购它的最佳方法。

使用包data.table,您可以快速,高效的方式创建数据帧:

m <- data.table(as.vector(m), as.vector(col(m)), as.vector(row(m)))

之后您订购数据

m <- m[ order(m[,1]), ]