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

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

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


当前回答

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

colSums(is.na(data_set_name)|data_set_name == '')

其他回答

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

sum(is.na(df))

在summary()输出中,该函数还计算NAs的数量,因此如果需要几个变量中NAs的总和,可以使用该函数。

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

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

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

你想太多了:

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