如何在 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
广告