如何在 R 矩阵中将 0 替换为 NA?


为了将 R 矩阵中的 0 替换为 NA,我们可以使用单方括号进行子集选择,然后将零设置为 NA。

例如,如果我们有一个包含一些零的矩阵 M,那么我们可以使用下面提到的命令将 0 替换为 NA:

M[M==0]<-NA

示例 1

考虑以下矩阵:

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

创建了以下数据框

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

要在上面创建的数据框中将 M1 中的 0 替换为 NA,请将以下代码添加到上面的代码段中:

M1<-matrix(rpois(80,1),ncol=4)
M1[M1==0]<-NA
M1

输出

如果您将以上所有代码段作为单个程序执行,它将生成以下输出:

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

示例 2

考虑以下矩阵:

M2<-matrix(round(rnorm(60),0),ncol=3)
M2

创建了以下数据框

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

要在上面创建的数据框中将 M2 中的 0 替换为 NA,请将以下代码添加到上面的代码段中:

M2<-matrix(round(rnorm(60),0),ncol=3)
M2[M2==0]<-NA
M2

输出

如果您将以上所有代码段作为单个程序执行,它将生成以下输出:


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

更新于:2021年11月1日

3K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告