Me gustaría mostrar los nombres de las columnas en un marco de datos grande que contenga valores faltantes. Básicamente, quiero el equivalente de complete.cases (df) pero para columnas, no filas. Algunas de las columnas son no numérico, así que algo comoMostrar columnas con NA en un data.frame
names(df[is.na(colMeans(df))])
devuelve "error en colMeans (df): 'x' debe ser numérico." Entonces, mi solución actual es transponer el dataframe y ejecutar complete.cases, pero supongo que hay alguna variante de apply (o algo en plyr) que sea mucho más eficiente.
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"
¿Alguien me puede mostrar una función más eficiente para identificar las columnas que tienen NA?
Eso funciona perfectamente, gracias, especialmente para los puntos de referencia! – Moira
+1 buena respuesta ... – Andrie