如何在 R 数据框中查找按组缺失值的数量?


在数据科学中,我们经常面临缺失值的问题,我们需要定义一种方法用适当的值替换它们,或者可以完全删除它们。如果我们想替换缺失值,我们也需要知道有多少缺失值。因此,如果我们有一个带有分组列的数据框,则可以使用 aggregate 函数查找按组缺失值的数量,如下例所示。

示例 1

考虑以下数据框:

在线演示

> Group<-sample(c("A","B"),20,replace=TRUE)
> x<-sample(c(NA,2),20,replace=TRUE)
> df1<-data.frame(Group,x)
> df1

输出

   Group  x
1      A  2
2      A NA
3      A NA
4      B  2
5      B  2
6      B NA
7      A  2
8      B NA
9      A  2
10     B NA
11     A NA
12     A  2
13     B  2
14     B  2
15     B NA
16     A NA
17     A  2
18     B  2
19     B NA
20     A NA

在 df1 中查找按组缺失值:

> aggregate(x~Group,data=df1, function(x) {sum(is.na(x))},na.action=NULL)

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

输出

  Group x
1     A 5
2     B 5

示例 2

在线演示

> Class<-sample(c("First","Second"),20,replace=TRUE)
> Score<-sample(c(NA,10,15),20,replace=TRUE)
> df2<-data.frame(Class,Score)
> df2

输出

    Class Score
1  Second    15
2   First    15
3  Second    10
4   First    10
5   First    15
6  Second    10
7   First    15
8  Second    NA
9  Second    15
10  First    15
11 Second    NA
12 Second    NA
13 Second    NA
14 Second    10
15 Second    NA
16  First    10
17  First    NA
18  First    15
19  First    10
20 Second    NA

在 df2 中查找按组缺失值:

> aggregate(Score~Class,data=df2, function(x) {sum(is.na(x))},na.action=NULL)

输出

   Class Score
1  First     1
2 Second     6

更新于:2021年3月5日

225 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告