我想在一个数据帧列中计算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)))))
这是一个好的/最有效的方法吗?
当前回答
我从本地目录读取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
其他回答
在summary()输出中,该函数还计算NAs的数量,因此如果需要几个变量中NAs的总和,可以使用该函数。
用户rrs的答案是正确的,但它只告诉你在数据帧的特定列中NA值的数量,你正在传递来获得整个数据帧的NA值的数量,试试这个:
apply(<name of dataFrame>, 2<for getting column stats>, function(x) {sum(is.na(x))})
这就行了
如果您希望计算整个数据帧中的NAs数量,也可以使用
sum(is.na(df))
如果你在每一列中寻找空值,然后一个接一个地打印,那么你可以使用这个。简单的解决方案。
lapply(df, function(x) { 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)