如何在 R 中按升序独立排序矩阵列?


按升序独立排序矩阵列意味着按升序对数据框的每一列排序,因此,一列中的值排序不会影响其他列的排序。这可以通过使用 apply 函数和 sort 函数来完成,如下面的示例所示。

示例

 运行演示

M1<-matrix(rpois(80,5),ncol=4)
M1

输出

     [,1] [,2] [,3] [,4]
[1,]  4    7    9    4
[2,]  5    6    6    2
[3,]  4    7    3    4
[4,]  4    3    2    2
[5,]  6    3    9    3
[6,]  7    5    5    5
[7,]  4    5    5    4
[8,]  2    4    0    6
[9,]  11   5    5    7
[10,] 2    3    5    6
[11,] 3    1    9    7
[12,] 5    10   6    7
[13,] 5    5    7    5
[14,] 6    3    1    3
[15,] 5    4    8    7
[16,] 4    10   4    3
[17,] 6    4    3    1
[18,] 2    6    5    2
[19,] 6   10   12    3
[20,] 9    2    3    4

apply(M1,2,sort)

    [,1] [,2] [,3] [,4]
[1,] 2    1     0    1
[2,] 2    2     1    2
[3,] 2    3     2    2
[4,] 3    3     3    2
[5,] 4    3     3    3
[6,] 4    3     3    3
[7,] 4    4     4    3
[8,] 4    4     5    3
[9,] 4    4     5    4
[10,] 5   5     5    4
[11,] 5   5     5    4
[12,] 5   5     5    4
[13,] 5   5     6    5
[14,] 6   6     6    5
[15,] 6   6     7    6
[16,] 6   7     8    6
[17,] 6   7     9    7
[18,] 7  10     9    7
[19,] 9  10     9    7
[20,] 11 10    12    7

示例

 运行演示

M2<-matrix(rnorm(45),ncol=3)
M2

输出

        [,1]      [,2]         [,3]
[1,]  0.7035341   0.1684070   0.6266624
[2,]  0.9411680   0.3888510  -0.6253838
[3,] -1.5572345  0.2111508   1.6147692
[4,]  0.9861180   0.3051785   0.4764457
[5,]  0.4121853   -0.2924738  -0.6538284
[6,] -0.2941798   1.4971932   -1.0346647
[7,] -0.8095073  0.2299736    0.9276157
[8,]  0.6784916   -0.3066246   -2.1540382
[9,]  0.3752442   -0.8025764   -0.8814537
[10,] 0.5712123  1.4410942    -0.8682303
[11,] 0.8312513   -1.0763055  1.8776386
[12,] -0.8845890  -0.3053165   1.1853445
[13,] -1.2043000  0.3795757    0.1601545
[14,] -0.8973574   -2.6955627  1.4023479
[15,] -0.7261224   2.0387155   1.0077507

apply(M2,2,sort)

           [,1]    [,2]         [,3]
[1,]  -1.5572345   -2.6955627   -2.1540382
[2,]  -1.2043000   -1.0763055   -1.0346647
[3,]  -0.8973574   -0.8025764   -0.8814537
[4,]  -0.8845890   -0.3066246   -0.8682303
[5,]  -0.8095073   -0.3053165   -0.6538284
[6,]  -0.7261224   -0.2924738   -0.6253838
[7,]  -0.2941798   0.1684070    0.1601545
[8,]  0.3752442    0.2111508    0.4764457
[9,]  0.4121853   0.2299736    0.6266624
[10,]  0.5712123  0.3051785    0.9276157
[11,]  0.6784916   0.3795757   1.0077507
[12,]  0.7035341   0.3888510   1.1853445
[13,]  0.8312513   1.4410942   1.4023479
[14,]  0.9411680   1.4971932   1.6147692
[15,]  0.9861180   2.0387155   1.8776386

示例

 运行演示

M3<-matrix(runif(40,2,10),ncol=2)
M3

输出

         [,1]    [,2]
[1,] 8.265500   3.812385
[2,] 8.213926   9.066299
[3,] 9.004847   5.589592
[4,] 6.364649   6.756629
[5,] 4.953512   3.778917
[6,] 8.354575   6.133739
[7,] 6.494883   7.320632
[8,] 2.769262   5.570083
[9,] 4.301743   6.874214
[10,] 5.467977  5.934101
[11,] 7.847425  9.373401
[12,] 7.860578 9.059702
[13,] 6.378894 3.864647
[14,] 7.988057 7.527622
[15,] 3.395857 2.156028
[16,] 3.060717 9.413530
[17,] 9.574119 2.519779
[18,] 9.705956 2.428624
[19,] 3.753683 6.364985
[20,] 9.969481 8.733604

apply(M3,2,sort)

[,1] [,2]
[1,] 2.769262 2.156028
[2,] 3.060717 2.428624
[3,] 3.395857 2.519779
[4,] 3.753683 3.778917
[5,] 4.301743 3.812385
[6,] 4.953512 3.864647
[7,] 5.467977 5.570083
[8,] 6.364649 5.589592
[9,] 6.378894 5.934101
[10,] 6.494883 6.133739
[11,] 7.847425 6.364985
[12,] 7.860578 6.756629
[13,] 7.988057 6.874214
[14,] 8.213926 7.320632
[15,] 8.265500 7.527622
[16,] 8.354575 8.733604
[17,] 9.004847 9.059702
[18,] 9.574119 9.066299
[19,] 9.705956 9.373401
[20,] 9.969481 9.413530

更新日期:06-Feb-2021

362 次浏览

开启您的职业生涯

完成课程获得认证

立即开始
广告