如何将矩阵列表中的0替换为R中的NA?

有时缺失值被读取为0,这不是表示它们的正确方法,因此,我们必须将数据中的0转换为NA,以便R可以理解缺失值和0之间的差异。对于此替换,我们可以使用lapply函数,并使用下面的示例所示的函数将替换应用于所有矩阵

示例

M1<-matrix(sample(c(0,rpois(6,5)),30,replace=TRUE),ncol=3)

M2<-matrix(sample(c(0,rpois(6,1)),30,replace=TRUE),ncol=3)

List1<-list(M1,M2)

List1

输出结果
[[1]]

   [,1] [,2] [,3]

[1,] 3    3    3

[2,] 3    0    5

[3,] 5    5    3

[4,] 3    3    5

[5,] 5    5    3

[6,] 3    3    3

[7,] 3    3    5

[8,] 5    3    3

[9,] 0    3    5

[10,] 5   3   3

[[2]]

   [,1] [,2] [,3]

[1,] 1    6    6

[2,] 1    6    1

[3,] 0    6    1

[4,] 0    1    6

[5,] 1    0    6

[6,] 6    0    6

[7,] 1    0    0

[8,] 0    6    0

[9,] 0    1    1

[10,] 0   1    1

lapply(List1,function(x)replace(x,x == 0,NA))

[[1]]

    [,1] [,2] [,3]

[1,] 3   3    3

[2,] 3   NA    5

[3,] 5   5    3

[4,] 3   3    5

[5,] 5   5    3

[6,] 3   3    3

[7,] 3   3    5

[8,] 5   3    3

[9,] NA  3    5

[10,] 5  3   3

[[2]]

    [,1] [,2] [,3]

[1,] 1    6   6

[2,] 1    6    1

[3,] NA    6   1

[4,] NA    1   6

[5,] 1    NA   6

[6,] 6    NA   6

[7,] 1    NA   NA

[8,] NA   6   NA

[9,] NA   1   1

[10,] NA  1   1

示例

M3<-matrix(sample(c(0,rpois(6,5)),20,replace=TRUE),ncol=4)

M4<-matrix(sample(c(0,rpois(6,1)),20,replace=TRUE),ncol=4)

List2<-list(M3,M4)

List2

输出结果
[[1]]

    [,1] [,2] [,3] [,4]

[1,] 5   4    4     3

[2,] 0   4    4     3

[3,] 4   6    6    0

[4,] 0   5    5    4

[5,] 6   5    0    0

[[2]]

   [,1] [,2] [,3] [,4]

[1,] 4   2   4     0

[2,] 0   0   2     0

[3,] 2   2   0    1

[4,] 4   4   1     0

[5,] 0   0   1     0

lapply(List2,function(x)replace(x,x == 0,NA))

[[1]]

    [,1] [,2] [,3] [,4]

[1,] 5    4    4    3

[2,] NA   4    4    3

[3,] 4    6    6    NA

[4,] NA   5    5    4

[5,] 6    5    NA   NA

[[2]]

    [,1] [,2] [,3] [,4]

[1,] 4    2    4    NA

[2,] NA   NA   2    NA

[3,] 2   2     NA   1

[4,] 4    4   1    NA

[5,] NA  NA    1   NA

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

回到顶部