大きな値のデータフレームに欠損値が含まれている列の名前を表示したいとします。基本的には、complete.cases(df)と同じですが、列ではなく行でも同じです。列の一部が非数値ですので、何か data.frameにNAsの列を表示する
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"
誰かが、NAsを持つ列を識別するためのより効率的な機能を表示できますか?
これは完璧に動作します、特にベンチマークのためにありがとう! – Moira
+1良い答え... – Andrie