如何在R中根据一列对矩阵进行排序?


由于矩阵只包含数值,因此也可以对矩阵进行排序。排序矩阵可能有多种原因,例如我们想要将矩阵转换为数据框,存储在矩阵中的数据需要在矩阵计算之前进行排序,以便计算后的结果视图更加清晰等等。要根据一列对矩阵进行排序,可以使用order函数。

示例

set.seed(123)
M1 <-matrix(sample(1:100,20),ncol=2)
M1

输出

[,1] [,2]
[1,] 31 90
[2,] 79 69
[3,] 51 57
[4,] 14 9
[5,] 67 72
[6,] 42 26
[7,] 50 7
[8,] 43 95
[9,] 97 87
[10,] 25 36

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

示例

根据第1列排序矩阵M1 −

M1[order(M1[,1],decreasing=FALSE),]

输出

[,1] [,2]
[1,] 14 9
[2,] 25 36
[3,] 31 90
[4,] 42 26
[5,] 43 95
[6,] 50 7
[7,] 51 57
[8,] 67 72
[9,] 79 69
[10,] 97 87

示例

M1[order(M1[,1],decreasing=TRUE),]

输出

[,1] [,2]
[1,] 97 87
[2,] 79 69
[3,] 67 72
[4,] 51 57
[5,] 50 7
[6,] 43 95
[7,] 42 26
[8,] 31 90
[9,] 25 36
[10,] 14 9

示例

M2 <-matrix(sample(1:10,20,replace=TRUE),ncol=2)
M2

输出

[,1] [,2]
[1,] 1 7
[2,] 7 5
[3,] 5 6
[4,] 10 9
[5,] 7 2
[6,] 9 5
[7,] 9 8
[8,] 10 2
[9,] 7 1
[10,] 5 9

根据第2列排序矩阵M2 −

示例

M2[order(M2[,2],decreasing=TRUE),]

输出

[,1] [,2]
[1,] 10 9
[2,] 5 9
[3,] 9 8
[4,] 1 7
[5,] 5 6
[6,] 7 5
[7,] 9 5
[8,] 7 2
[9,] 10 2
[10,] 7 1

示例

M2[order(M2[,2],decreasing=FALSE),]

输出

[,1] [,2]
[1,] 7 1
[2,] 7 2
[3,] 10 2
[4,] 7 5
[5,] 9 5
[6,] 5 6
[7,] 1 7
[8,] 9 8
[9,] 10 9
[10,] 5 9

示例

M3 <-matrix(sample(1:50,20),ncol=2)
M3

输出

[,1] [,2]
[1,] 27 6
[2,] 25 8
[3,] 38 22
[4,] 21 48
[5,] 15 43
[6,] 41 17
[7,] 26 34
[8,] 31 4
[9,] 16 13
[10,] 30 5

根据第3列排序矩阵M3 −

示例

M3[order(M3[,2],decreasing=FALSE),]

输出

[,1] [,2]
[1,] 31 4
[2,] 30 5
[3,] 27 6
[4,] 25 8
[5,] 16 13
[6,] 41 17
[7,] 38 22
[8,] 26 34
[9,] 15 43
[10,] 21 48

示例

M3[order(M3[,2],decreasing=TRUE),]

输出

[,1] [,2]
[1,] 21 48
[2,] 15 43
[3,] 26 34
[4,] 38 22
[5,] 41 17
[6,] 16 13
[7,] 25 8
[8,] 27 6
[9,] 30 5
[10,] 31 4

更新于:2020年8月24日

9K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告