Chcę usunąć wszystkie kolumny lub wiersze z więcej niż 50% NA
s w ramce danych.Usuń kolumny/wiersze z brakiem x%
To jest moje rozwiązanie:
# 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,]
ale szukam ładniejszy/szybszego rozwiązania.
Chciałbym również docenić dplyr
rozwiązanie
@Ricky Dodałem moje rozwiązanie wiersza, które jest prawie takie samo – spore234
Aby potwierdzić moje zrozumienie dla dodatkowego rozwiązania wiersza: Więc jeśli wiersz X początkowo ma więcej niż 50% NA, ale po usunięciu kolumny 3 niż kolumna X ma mniej niż 50% NA, wiersza X nie należy usuwać? – Ricky