确定列中的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)
尝试colSums
function
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