如何用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

以上是 如何用R矩阵中的NA替换0? 的全部内容, 来源链接: utcz.com/z/357394.html

回到顶部