如何在 R 中统计矩阵某一行的元素方差?


统计列的方差是数据分析中的一项常见任务,但很多时候数据以宽格式提供,而不是长格式,因此,情况会垂直表示,变量横向排列,而此类数据可以在矩阵或其他形式中找到。因此,可以通过使用 apply 函数轻松找到方差。

示例

 在线演示

M1<-matrix(1:25,ncol=5)
M1

输出

   [,1] [,2] [,3] [,4] [,5]
[1,] 1   6    11   16    21
[2,] 2   7    12   17    22
[3,] 3   8    13   18    23
[4,] 4   9    14   19    24
[5,] 5   10   15   20    25

示例

apply(M1,1,var)

输出

[1] 62.5 62.5 62.5 62.5 62.5

示例

 在线演示

M2<-matrix(1:100,nrow=10)
M2

输出

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1 11 21 31 41 51 61 71 81 91
[2,] 2 12 22 32 42 52 62 72 82 92
[3,] 3 13 23 33 43 53 63 73 83 93
[4,] 4 14 24 34 44 54 64 74 84 94
[5,] 5 15 25 35 45 55 65 75 85 95
[6,] 6 16 26 36 46 56 66 76 86 96
[7,] 7 17 27 37 47 57 67 77 87 97
[8,] 8 18 28 38 48 58 68 78 88 98
[9,] 9 19 29 39 49 59 69 79 89 99
[10,] 10 20 30 40 50 60 70 80 90 100

示例

apply(M2,1,var)

输出

[1] 916.6667 916.6667 916.6667 916.6667 916.6667 916.6667 916.6667 916.6667 [9] 916.6667 916.6667

示例

 在线演示

M3<-matrix(1:60,nrow=20)
M3

输出

    [,1] [,2] [,3]
[1,]  1   21 41
[2,]  2   22 42
[3,]  3   23 43
[4,]  4   24 44
[5,]  5   25 45
[6,]  6   26 46
[7,]  7   27 47
[8,]  8   28 48
[9,]  9   29 49
[10,] 10  30 50
[11,] 11  31 51
[12,] 12  32 52
[13,] 13  33 53
[14,] 14  34 54
[15,] 15  35 55
[16,] 16  36 56
[17,] 17  37 57
[18,] 18  38 58
[19,] 19  39 59
[20,] 20  40 60

示例

apply(M3,1,var)

输出

[1] 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
[20] 400

示例

 在线演示

M4<-matrix(rnorm(30,5,1),nrow=15)
M4

输出

        [,1]    [,2]
[1,] 5.517894  6.105346
[2,] 4.008269  3.640526
[3,] 5.484878  6.779180
[4,] 4.534817  6.723722
[5,] 5.602067  4.032113
[6,] 5.884524  4.910336
[7,] 3.234350  5.824891
[8,] 4.188615  4.874050
[9,] 3.367234  5.062664
[10,] 6.430093  3.369706
[11,] 4.364802  5.902848
[12,] 5.536012  7.037217
[13,] 5.096840 4.269251
[14,] 6.154817 4.320163
[15,] 5.070610 5.150351

示例

apply(M4,1,var)

输出

[1] 0.021906088 0.711543659 0.632177226 0.822552459 0.273495182 1.132347512
[7] 0.058730197 1.369282431 1.130733174 0.625609262 2.226411932 0.081628957
[13] 0.237108400 0.001073659 0.011819879

示例

 在线演示

M5<-matrix(runif(40,1,2),nrow=20)
M5

输出

[,1] [,2]
[1,] 1.797724 1.045920
[2,] 1.663738 1.404009
[3,] 1.751550 1.920017
[4,] 1.250277 1.445597
[5,] 1.344217 1.975511
[6,] 1.186875 1.877203
[7,] 1.232352 1.912921
[8,] 1.848107 1.016703
[9,] 1.997422 1.888561
[10,] 1.370770 1.548419
[11,] 1.564406 1.925559
[12,] 1.316188 1.024001
[13,] 1.373600 1.642644
[14,] 1.880770 1.861855
[15,] 1.230204 1.628706
[16,] 1.339799 1.782240
[17,] 1.128182 1.186216
[18,] 1.862291 1.140511
[19,] 1.541293 1.454260
[20,] 1.332327 1.398676

示例

apply(M5,1,var)

输出

[1] 3.995889e-05 2.476911e-01 9.689490e-02 3.826634e-02 6.342112e-06
[6] 2.507245e-02 2.410225e-01 7.566494e-02 2.419975e-02 2.205656e-02
[11] 3.307264e-03 1.020207e-01 2.852077e-01 1.436173e-01 4.729889e-03
[16] 4.647355e-02 1.425541e-01 4.943002e-03 4.128207e-02 7.227659e-03

更新于: 2020 年 10 月 16 日

1 千次 + 查看

开启你的职业

完成课程并获得认证

开始
广告