NA
データフレーム列の値の数を数えたい。私のデータフレームが呼び出されdf
、検討している列の名前がそうだとしますcol
。私が思いついた方法は次のとおりです:
sapply(df$col, function(x) sum(length(which(is.na(x)))))
これはこれを行うための良い/最も効率的な方法ですか?
NA
データフレーム列の値の数を数えたい。私のデータフレームが呼び出されdf
、検討している列の名前がそうだとしますcol
。私が思いついた方法は次のとおりです:
sapply(df$col, function(x) sum(length(which(is.na(x)))))
これはこれを行うための良い/最も効率的な方法ですか?
回答:
あなたは問題を考えすぎています:
sum(is.na(df$col))
sum(df$col==value,na.rm=FALSE)
トリックを行います。
na.rm=TRUE
、それ以外の場合df$col
はNAが含まれているため、sum
が返されNA
ます。
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
na_count$name<-rownames(na_count)
ます。
na_count <-sapply(x, function(y) sum(is.na(y)))
短い代替です。
ではsummary()
出力、機能もカウントNA
1が和たい場合は、1つは、この機能を使用できるようにSをNA
複数の変数で秒。
summary
単一の列で使用した場合の出力は使用可能ですが、データフレーム全体からの出力は文字であり、後で必要になった場合にカウントを抽出することは困難です。を参照してくださいc(summary(mtcars))
。
データフレームのすべての列のnullの数をカウントするための整然とした方法:
library(tidyverse)
library(purrr)
df %>%
map_df(function(x) sum(is.na(x))) %>%
gather(feature, num_nulls) %>%
print(n = 100)
df %>% summarise_all(funs(sum(is.na(.))))
df %>% map_df(~sum(is.na(.)))
または、dplyr asなしmap_df(~sum(is.na(df)))
取得するために迅速かつ簡単なTidyverseソリューションNA
すべての列の数が使用されsummarise_all()
、私が使用するよりも解決読み取ることがはるかに容易になりますだと思うpurrr
かをsapply
library(tidyverse)
# Example data
df <- tibble(col1 = c(1, 2, 3, NA),
col2 = c(NA, NA, "a", "b"))
df %>% summarise_all(~ sum(is.na(.)))
#> # A tibble: 1 x 2
#> col1 col2
#> <int> <int>
#> 1 1 2
これを試して:
length(df$col[is.na(df$col)])
ユーザーrrsの答えは正しいですが、データフレーム全体のNA値の数を取得するために渡すデータフレームの特定の列にあるNA値の数のみを通知します。
apply(<name of dataFrame>, 2<for getting column stats>, function(x) {sum(is.na(x))})
これはトリックです
apply(df, 2, function(x) sum(is.na(x)))
ローカルディレクトリから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
これを使用して、すべての列のNAまたは空白の数をカウントできます
colSums(is.na(data_set_name)|data_set_name == '')
sapply(name of the data, function(x) sum(is.na(x)))
value
以外NA
は 、恣意的な量を数えるのに、もっと簡潔な直接構文がありますか?is.value
sum(is.value(df$col))