确定列中的NA值的数量

我想要计算dataframe列中的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 

如果您正在计算整个dataframe中的NAs数量,您也可以使用

 sum(is.na(df)) 

summary()输出中,函数也计算NA所以如果想要在几个variables中求和NA可以使用这个函数。

这个forms与Kevin Ogoros的forms略有不同:

 na_count <-function (x) sapply(x, function(y) sum(is.na(y))) 

将NA计数返回为指定的int数组

计算数据框每一列中的空值数量的一种简单的方法:

 library(tidyverse) library(purrr) df %>% map_df(function(x) sum(is.na(x))) %>% gather(feature, num_nulls) %>% print(n = 100) 

尝试colSumsfunction

 df <- data.frame(x = c(1,2,NA), y = rep(NA, 3)) colSums(is.na(df)) #xy #1 3 

尝试这个:

 length(df$col[is.na(df$col)]) 

用户rrs的回答是正确的,但是它只告诉你在你传递的dataframe的特定列中的NA值的数量,以获得整个dataframe的NA值的数量:

 apply(<name of dataFrame>, 2<for getting column stats>, 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