Answers:
您对问题的想法过多:
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
s进行计数,因此如果一个人想要NA
多个变量中s 的和,则可以使用此函数。
summary
单列上使用时,输出是可用的,而在整个数据帧中的输出都是字符,如果以后需要它们,则很难提取计数。请参阅c(summary(mtcars))
。
一种用于计算数据帧每一列中的空值数量的方法:
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,如map_df(~sum(is.na(df)))
这种形式与Kevin Ogoros的形式略有不同:
na_count <-function (x) sapply(x, function(y) sum(is.na(y)))
以指定的int数组形式返回NA计数
na_count <-function (x) lapply(x, function(y) sum(is.na(y)))
试试这个:
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))
走法之外,还是有更简洁的直接语法呢?