我想在一个数据帧列中计算NA值的数量。假设我的数据帧称为df,我正在考虑的列的名称是col。我提出的方法如下:

sapply(df$col, function(x) sum(length(which(is.na(x)))))  

这是一个好的/最有效的方法吗?


当前回答

这个表格与凯文·奥戈洛斯的表格略有不同:

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

返回命名为int数组的NA计数

其他回答

你可以用它来计算每一列中NA或空格的数量

colSums(is.na(data_set_name)|data_set_name == '')
sapply(name of the data, function(x) sum(is.na(x)))

用户rrs的答案是正确的,但它只告诉你在数据帧的特定列中NA值的数量,你正在传递来获得整个数据帧的NA值的数量,试试这个:

apply(<name of dataFrame>, 2<for getting column stats>, function(x) {sum(is.na(x))})

这就行了

如果你在每一列中寻找空值,然后一个接一个地打印,那么你可以使用这个。简单的解决方案。

lapply(df, function(x) { length(which(is.na(x)))})

如果您希望计算整个数据帧中的NAs数量,也可以使用

sum(is.na(df))