由于矩阵仅包含数值,因此也可以对矩阵进行排序。排序矩阵可能有多种原因,例如我们想将矩阵转换为数据帧,在矩阵计算之前需要对存储在矩阵中的数据进行排序,以使计算后的结果视图更加清晰,等等。根据一列对矩阵进行排序,我们可以使用订单函数。
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
基于列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