データフレーム列のNA
値の数を数えたいのですが。私のデータフレームがdf
であり、私が考えているカラムの名前がcol
であるとしましょう。私が思いついた方法は次のとおりです。
sapply(df$col, function(x) sum(length(which(is.na(x)))))
これはこれを行うための良い/最も効率的な方法ですか?
あなたは問題を見過ごしています:
sum(is.na(df$col))
データフレームの各列についてNA
の数を探しているなら、
na_count <-sapply(x, function(y) sum(length(which(is.na(y)))))
各列の数のリストが表示されます。
na_count <- data.frame(na_count)
次のようなデータフレームでデータをうまく出力する必要があります。
----------------------
| row.names | na_count
------------------------
| column_1 | count
colSums
関数を試す
df <- data.frame(x = c(1,2,NA), y = rep(NA, 3))
colSums(is.na(df))
#x y
#1 3
データフレーム全体に含まれるNAの数を数えようとしているなら、あなたも使うことができます。
sum(is.na(df))
summary()
の出力では、この関数はNA
sも数えるので、複数の変数のNA
sの合計が必要な場合にこの関数を使用できます。
データフレームのすべての列のnullの数を数えるための巧妙な方法:
library(tidyverse)
library(purrr)
df %>%
map_df(function(x) sum(is.na(x))) %>%
gather(feature, num_nulls) %>%
print(n = 100)
この形式は、Kevin Ogorosのものからわずかに変更されました。
na_count <-function (x) sapply(x, function(y) sum(is.na(y)))
名前付きint配列としてNAカウントを返す
User rrs answerは正しいですが、データフレーム全体のNA値の数を取得するために渡しているデータフレームの特定の列にあるNA値の数だけがわかります。
apply(<name of dataFrame>, 2<for getting column stats>, function(x) {sum(is.na(x))})
これはトリックです
これを試して:
length(df$col[is.na(df$col)])
ローカルディレクトリからcsvファイルを読みます。以下のコードは私のために働きます。
# to get number of which contains na
sum(is.na(df[, c(columnName)]) # to get number of na row
# to get number of which not contains na
sum(!is.na(df[, c(columnName)])
#here columnName is your desire column name
Hute37の答えに似ていますが、purrライブラリを使っています。私はこの巧妙なアプローチがAbiKによって提案された答えよりも簡単であると思います。
map_dbl(df, ~sum(is.na(.)))
注:ティルダは無名関数を作成します。そしてその '。'無名関数の入力を参照します。この場合、data.frame dfです。
これを使用して、各列のNAまたはブランクの数を数えることができます。
colSums(is.na(data_set_name)|data_set_name == '')