Chciałbym wyświetlić nazwy kolumn w dużej ramce danych, które zawierają brakujące wartości. Zasadniczo chcę odpowiednik complete.cases (df), ale dla kolumn, a nie wierszy. Niektóre z kolumn są non-numeryczne, więc cośPokaż kolumny z NA w data.frame
names(df[is.na(colMeans(df))])
zwrotów „Błąd w colMeans (DF).«X»musi być liczbą” Tak więc, moim obecnym rozwiązaniem jest transponowanie ramki danych i uruchamianie kompletnych plików, ale domyślam się, że istnieje pewien wariant zastosowania (lub czegoś w plyrze), który jest znacznie bardziej wydajny.
nacols <- function(df) {
names(df[,!complete.cases(t(df))])
}
w <- c("hello","goodbye","stuff")
x <- c(1,2,3)
y <- c(1,NA,0)
z <- c(1,0, NA)
tmp <- data.frame(w,x,y,z)
nacols(tmp)
[1] "y" "z"
Czy ktoś może mi pokazać bardziej wydajną funkcję identyfikacji kolumn z NA?
To działa idealnie, dzięki, szczególnie dla benchmarków! – Moira
+1 ładna odpowiedź ... – Andrie