一个类似下面的数据框:
DF <- data.frame(ids = c(1, 2, 3), y = c(0, 10, NA), z=c(NA, 33, 22))
可以使用以下方法删除包含NA的行:
completeFun <- function(data, desiredCols) {
completeVec <- complete.cases(data[, desiredCols])
return(data[completeVec, ])
}
completeFun(DF, "y")
# x y z
# 1 1 0 NA
# 2 2 10 33
completeFun(DF, c("y", "z"))
如何删除所有单元格中都含有NA的行,而不删除只包含一个NA的行。
输入示例:
DF <- data.frame(ids = c(1, 2, 3,4), y = c(0, 10, NA,NA), z=c(NA, 33, 22,NA))
预期输出的示例:
DF <- data.frame(ids = c(1, 2, 3), y = c(0, 10, NA), z=c(NA, 33, 22))
rowSums
函数创建逻辑向量,即DF[rowSums(is.na(DF[-1])) < 2,]
。 - akrun