R - 用 NA 替换矩阵中*仅一行*的零值

R - replacing the zero values in *just one row* of a matrix with NA

提问人:J.Q 提问时间:1/19/2022 最后编辑:J.Q 更新时间:1/19/2022 访问量:206

问:

Matrix 的第一行有一些 0 和 1。A

A <- matrix(data=c( 0,0,1,1,0,0,0,1,0,  #1
                    0,0,0,0,1,0,0,0,0,  #2
                    1,0,0,0,0,0,0,0,0,  #3
                    1,0,0,0,0,0,0,0,1,  #4
                    0,1,0,0,0,1,0,0,0,  #5
                    0,0,0,0,1,0,0,0,0,  #6
                    0,0,0,0,0,0,0,0,0,  #7
                    1,0,0,0,0,0,0,0,0,  #8
                    0,0,0,1,0,0,0,0,0 ),#9
            nrow=9, ncol=9)

我只需要用值替换这一行中的零。应如下所示:NAresult

result <- matrix(data=c( NA,NA,1,1,NA,NA,NA,1,NA,  #1
                    0,0,0,0,1,0,0,0,0,  #2
                    1,0,0,0,0,0,0,0,0,  #3
                    1,0,0,0,0,0,0,0,1,  #4
                    0,1,0,0,0,1,0,0,0,  #5
                    0,0,0,0,1,0,0,0,0,  #6
                    0,0,0,0,0,0,0,0,0,  #7
                    1,0,0,0,0,0,0,0,0,  #8
                    0,0,0,1,0,0,0,0,0 ),#9
            nrow=9, ncol=9)

将整个矩阵中的给定值完全替换为另一个值的其他类似问题的解决方案不适用,我很惊讶我无法扩展这些解决方案。

R 矩阵 操作 数据清洗

评论


答:

3赞 r2evans 1/19/2022 #1
A[1, A[1,] == 0] <- NA
A
#       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
#  [1,]   NA   NA    1    1   NA   NA   NA    1   NA
#  [2,]    0    0    0    0    1    0    0    0    0
#  [3,]    1    0    0    0    0    0    0    0    0
#  [4,]    1    0    0    0    0    0    0    0    1
#  [5,]    0    1    0    0    0    1    0    0    0
#  [6,]    0    0    0    0    1    0    0    0    0
#  [7,]    0    0    0    0    0    0    0    0    0
#  [8,]    1    0    0    0    0    0    0    0    0
#  [9,]    0    0    0    1    0    0    0    0    0