我正在尝试删除 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 不喜欢那样。
答案 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"