Я хотел бы показать имена столбцов в большом фреймворке данных, которые содержат отсутствующие значения. В принципе, я хочу эквивалент complete.cases(df), но для столбцов, а не строк. Некоторые столбцы не являются числовыми, поэтому что-то вроде
names(df[is.na(colMeans(df))])
возвращает "Ошибка в colMeans (df):" x "должно быть числовым". Итак, мое текущее решение состоит в том, чтобы перенести данные и запустить complete.cases, но я предполагаю, что какой-то вариант применения (или что-то в plyr) намного эффективнее.
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"
Может ли кто-нибудь показать мне более эффективную функцию для определения столбцов с NA?