要根据 R 中的单个列按递增顺序更改矩阵的顺序,我们可以在对特定列进行子集化后使用 order 函数。
例如,如果我们有一个名为 M 的矩阵,并且我们想根据第一列按递增顺序更改 M 的顺序,那么可以使用以下命令来完成 -
M[order(M[,1]),]
以下代码段创建了一个矩阵 -
M1<-matrix(rpois(100,10),ncol=5) M1
创建以下矩阵 -
[,1][,2][,3][,4][,5] [1,] 13 10 10 9 13 [2,] 4 14 14 8 10 [3,] 10 16 10 9 11 [4,] 6 9 12 8 8 [5,] 10 12 12 10 11 [6,] 6 8 12 12 8 [7,] 13 11 8 11 5 [8,] 2 8 15 8 6 [9,] 11 6 8 12 12 [10,] 14 7 9 9 13 [11,] 6 15 14 8 11 [12,] 9 10 14 9 8 [13,] 7 13 6 10 9 [14,] 12 16 9 10 9 [15,] 10 9 7 6 8 [16,] 12 5 10 6 12 [17,] 9 8 11 9 6 [18,] 12 8 11 11 9 [19,] 10 11 8 10 17 [20,] 10 10 6 17 17
要根据第 1 列按递增顺序更改 M1 的顺序,请将以下代码添加到上述代码段中 -
M1<-matrix(rpois(100,10),ncol=5) M1[order(M1[,1]),]输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
[,1][,2][,3][,4][,5] [1,] 2 8 15 8 6 [2,] 4 14 14 8 10 [3,] 6 9 12 8 8 [4,] 6 8 12 12 8 [5,] 6 15 14 8 11 [6,] 7 13 6 10 9 [7,] 9 10 14 9 8 [8,] 9 8 11 9 6 [9,] 10 16 10 9 11 [10,] 10 12 12 10 11 [11,] 10 9 7 6 8 [12,] 10 11 8 10 17 [13,] 10 10 6 17 17 [14,] 11 6 8 12 12 [15,] 12 16 9 10 9 [16,] 12 5 10 6 12 [17,] 12 8 11 11 9 [18,] 13 10 10 9 13 [19,] 13 11 8 11 5 [20,] 14 7 9 9 13
以下代码段创建了一个矩阵 -
M2<-matrix(round(rnorm(80),2),ncol=4) M2
创建以下矩阵 -
[,1] [,2] [,3] [,4] [1,] 2.09 0.99 1.01 -2.08 [2,] -0.68 -1.94 -0.52 -0.09 [3,] -1.86 0.11 -0.29 1.19 [4,] 0.53 0.61 0.40 1.19 [5,] 0.31 -1.45 -0.55 -0.79 [6,] -1.35 0.48 0.09 -1.55 [7,] -1.94 -0.83 -1.96 2.46 [8,] -0.12 1.02 -1.12 -0.16 [9,] 1.14 0.54 -1.33 -0.10 [10,] 0.64 0.77 -0.85 0.42 [11,] -0.49 0.12 -0.69 -1.61 [12,] -0.83 0.86 0.38 -0.73 [13,] 0.27 1.38 0.98 -1.54 [14,] 0.16 1.97 -0.73 -0.69 [15,] 0.63 -0.03 -1.00 0.12 [16,] -0.40 -2.25 -1.04 -1.36 [17,] 0.90 0.03 -0.41 0.59 [18,] -0.83 0.21 -0.24 0.29 [19,] -0.33 -0.16 0.48 -0.90 [20,] 0.74 0.57 -0.32 0.23
要根据第 4 列按递增顺序更改 M2 的顺序,请将以下代码添加到上述代码段中 -
M2<-matrix(round(rnorm(80),2),ncol=4) M2[order(M2[,4]),]输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
[,1] [,2] [,3] [,4] [1,] 2.09 0.99 1.01 -2.08 [2,] -0.49 0.12 -0.69 -1.61 [3,] -1.35 0.48 0.09 -1.55 [4,] 0.27 1.38 0.98 -1.54 [5,] -0.40 -2.25 -1.04 -1.36 [6,] -0.33 -0.16 0.48 -0.90 [7,] 0.31 -1.45 -0.55 -0.79 [8,] -0.83 0.86 0.38 -0.73 [9,] 0.16 1.97 -0.73 -0.69 [10,] -0.12 1.02 -1.12 -0.16 [11,] 1.14 0.54 -1.33 -0.10 [12,] -0.68 -1.94 -0.52 -0.09 [13,] 0.63 -0.03 -1.00 0.12 [14,] 0.74 0.57 -0.32 0.23 [15,] -0.83 0.21 -0.24 0.29 [16,] 0.64 0.77 -0.85 0.42 [17,] 0.90 0.03 -0.41 0.59 [18,] -1.86 0.11 -0.29 1.19 [19,] 0.53 0.61 0.40 1.19 [20,] -1.94 -0.83 -1.96 2.46