如何在 R 数据框中查找分组缺失值的数量?
在数据科学中,我们经常面临缺失值的问题,我们需要定义一种方法来用合适的值替换它们,或者我们可以完全删除它们。如果我们想替换缺失值,那么我们还需要知道有多少缺失值。因此,如果我们有一个带有分组列的数据框,那么可以使用聚合函数找到分组缺失值的数量,如下例所示。
示例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)输出结果
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