如何在 R 中将矩阵的对角线元素转换为缺失值?


我们需要首先了解的对角线元素只对方阵才有用,否则设置对角线元素没有意义,几乎所有数学家都知道这一点,但一些新生可能会感到困惑,因为我们可以在非方阵中创建对角线,但这不应该称为对角线。在 R 中,我们可以使用 diag 函数将矩阵的对角线元素设置为缺失值/NA。

示例1

实时演示

> M1<-matrix(1:16,nrow=4)
> M1

输出

  [,1] [,2] [,3] [,4]
[1,] 1   5    9   13
[2,] 2   6   10   14
[3,] 3   7   11   15
[4,] 4   8   12   16

示例

> diag(M1)<-NA
> M1

输出

    [,1] [,2] [,3] [,4]
[1,] NA    5    9   13
[2,]  2   NA   10   14
[3,]  3    7   NA   15
[4,]  4    8   12   NA

示例2

实时演示

> M2<-matrix(rpois(100,10),nrow=10)
> M2

输出

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

示例

> diag(M2)<-NA
> M2

输出

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

示例3

实时演示

> M3<-matrix(rpois(25,3),nrow=5)
> M3

输出

[,1] [,2] [,3] [,4] [,5]
[1,] 2 3 4 2 4
[2,] 2 2 3 5 3
[3,] 3 7 6 1 5
[4,] 1 1 4 1 4
[5,] 1 2 0 1 5

示例

> diag(M3)<-NA
> M3

输出

[,1] [,2] [,3] [,4] [,5]
[1,] NA 3 4 2 4
[2,] 2 NA 3 5 3
[3,] 3 7 NA 1 5
[4,] 1 1 4 NA 4
[5,] 1 2 0 1 NA

示例4

实时演示

> M4<-matrix(rnorm(36,5,2.5),nrow=6)
> M4

输出

[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 7.449650 2.977026 3.631003 1.588073 6.4641515 4.9833353
[2,] 4.326318 4.327728 6.790520 2.367960 0.9577471 5.4084005
[3,] 3.143312 6.766010 5.364526 2.544719 7.9256179 -0.8116725
[4,] 5.983452 5.340530 2.530320 6.830628 4.0030207 7.1645111
[5,] 4.073458 1.795408 -2.391053 6.320859 4.5389839 1.0296674
[6,] 3.739790 6.036844 6.171213 6.901320 5.5595449 4.9644731

示例

> diag(M4)<-NA
> M4

输出

[,1] [,2] [,3] [,4] [,5] [,6]
[1,] NA 2.977026 3.631003 1.588073 6.4641515 4.9833353
[2,] 4.326318 NA 6.790520 2.367960 0.9577471 5.4084005
[3,] 3.143312 6.766010 NA 2.544719 7.9256179 -0.8116725
[4,] 5.983452 5.340530 2.530320 NA 4.0030207 7.1645111
[5,] 4.073458 1.795408 -2.391053 6.320859 NA 1.0296674
[6,] 3.739790 6.036844 6.171213 6.901320 5.5595449 NA

示例5

实时演示

> M5<-matrix(runif(25,2,5),nrow=5)
> M5

输出

[,1] [,2] [,3] [,4] [,5]
[1,] 2.753600 3.017767 2.923270 2.532730 3.425423
[2,] 2.742611 2.398763 4.906797 4.273442 3.416288
[3,] 2.744358 4.227648 3.690739 3.508798 3.423980
[4,] 3.124375 2.363392 3.336010 4.770364 3.294046
[5,] 3.468065 3.424600 2.667044 2.623021 4.055215

示例

> diag(M5)<-NA
> M5

输出

   [,1] [,2] [,3] [,4] [,5]
[1,] NA 3.017767 2.923270 2.532730 3.425423
[2,] 2.742611 NA 4.906797 4.273442 3.416288
[3,] 2.744358 4.227648 NA 3.508798 3.423980
[4,] 3.124375 2.363392 3.336010 NA 3.294046
[5,] 3.468065 3.424600 2.667044 2.623021 NA

更新于:2020 年 11 月 6 日

785 次浏览

职业起点

完成课程获得认证

开始
广告