【发布时间】:2023-03-31 19:30:01
【问题描述】:
我想在包含缺失值的大型数据框中显示列的名称。基本上,我想要等价于 complete.cases(df) 但对于列,而不是行。有些列是非数字的,所以类似于
names(df[is.na(colMeans(df))])
返回“colMeans(df) 中的错误:‘x’必须是数字。”所以,我目前的解决方案是转置数据帧并运行 complete.cases,但我猜有一些 apply 的变体(或 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 的列?
【问题讨论】: