我想在包含缺失值的大型数据框中显示列的名称。基本上,我想要等价于 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 的列吗?