我想计算NA
数据框列中的值的数量.假设我的数据框被调用df
,我正在考虑的列的名称是col
.我想出的方法如下:
sapply(df$col, function(x) sum(length(which(is.na(x)))))
这是一个很好/最有效的方法吗?
一种计算数据帧每列中空值数量的整合方法:
library(tidyverse) library(purrr) df %>% map_df(function(x) sum(is.na(x))) %>% gather(feature, num_nulls) %>% print(n = 100)
试试这个colSums
功能
df <- data.frame(x = c(1,2,NA), y = rep(NA, 3)) colSums(is.na(df)) #x y #1 3
在summary()
输出中,该函数还对NA
s进行计数,因此如果想要NA
多个变量中的s 之和,则可以使用此函数.
这个表格稍微改变了凯文奥戈罗斯的一个:
na_count <-function (x) sapply(x, function(y) sum(is.na(y)))
将NA计数返回为命名的int数组
如果您想要计算整个数据帧中的NA数量,您也可以使用
sum(is.na(df))
你过分思考这个问题:
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