Я хочу удалить все столбцы или строки с более чем 50% NA
s в фрейме данных.Удалить столбцы/строки с большим количеством x% отсутствующих
Это мое решение:
# 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 Я добавил решение для ряда строк, которое почти такое же. – spore234
Чтобы подтвердить мое понимание дополнительного решения строки: Так что если строка X изначально имеет более 50% NA, но после удаления столбца 3, чем столбец X, менее 50% NA, строка X не должна удаляться? – Ricky