删除 R 中至少有一个 NA 的矩阵的行

时间:2021-01-28 14:45:45

标签: r matrix rows na

我正在尝试删除 R 中矩阵的行。我删除行的标准是该列包含至少一个 NA(注意整行不需要NA 就像本网站上的其他问题一样)。

例如,如果矩阵 A 如下所示

32  54  34
NA  10  NA
17  93  NA

应该只保留第一行。

这就是我正在尝试的,但我得到的是一列而不是一行。

newMatrix <- A[,rowSums(apply(A, 1, is.na))<1]
#A is a matrix

我错过了什么?我尝试做 !is.na,但 R 不喜欢那样。

2 个答案:

答案 0 :(得分:1)

您是否尝试过:matrix[complete.cases(matrix),]

答案 1 :(得分:1)

尝试使用 na.omit 函数:

x <- matrix(c(32, 54, 34, NA, 10, NA, 17, 93, NA), nrow = 3, ncol = 3, byrow = TRUE)
na.omit(x)

输出:

     [,1] [,2] [,3]
[1,]   32   54   34
attr(,"na.action")
[1] 2 3
attr(,"class")
[1] "omit"