【发布时间】:2015-10-29 03:40:03
【问题描述】:
我想删除数据框中超过 50% NAs 的所有列或行。
这是我的解决方案:
# delete columns with more than 50% missings
miss <- c()
for(i in 1:ncol(data)) {
if(length(which(is.na(data[,i]))) > 0.5*nrow(data)) miss <- append(miss,i)
}
data2 <- data[,-miss]
# delete rows with more than 50% percent missing
miss2 <- c()
for(i in 1:nrow(data)) {
if(length(which(is.na(data[i,]))) > 0.5*ncol(data)) miss2 <- append(miss2,i)
}
data <- data[-miss,]
但我正在寻找更好/更快的解决方案。
我也很感激dplyr 解决方案
【问题讨论】:
-
@Ricky 我添加了我的行解决方案,这几乎是一样的
-
确认我对附加行解决方案的理解:因此,如果行 X 最初具有超过 50% 的 NA,但在删除第 3 列后,比列 X 的 NA 小于 50%,行 X 不应该被删除?