如何用R矩阵中的NA替换0?

要将 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