如何按Time分组统计BIP与EXP列缺失数据并找出最多分组?
按Time分组统计缺失值总量的解决方案
你可以通过按Time分组后分别统计BIP和EXP的缺失值,再计算每组的总缺失数来解决这个问题,以下提供两种常用的实现方式:
方法一:使用dplyr包(推荐,代码更直观)
先确保已安装并加载dplyr包:
# 若未安装则先执行安装 # install.packages("dplyr") library(dplyr) # 分组统计缺失值并计算总量 df %>% group_by(Time) %>% summarise( BIP缺失数 = sum(is.na(BIP)), EXP缺失数 = sum(is.na(EXP)), 总缺失数 = BIP缺失数 + EXP缺失数 )
执行后会得到每个Time分组对应的BIP缺失数、EXP缺失数以及两者的总和,直接查看总缺失数列即可找到缺失最多的分组。
方法二:使用Base R(无需额外安装包)
# 按Time分组统计BIP和EXP的缺失数 na_stats <- aggregate(cbind(BIP, EXP) ~ Time, data = df, FUN = function(col) sum(is.na(col))) # 添加总缺失数列 na_stats$总缺失数 <- na_stats$BIP + na_stats$EXP # 输出结果 na_stats
两种方法最终都会输出类似如下的结果(以你提供的示例数据为例):
| Time | BIP | EXP | 总缺失数 |
|---|---|---|---|
| BF | 0 | 0 | 0 |
| DF | 1 | 1 | 2 |
| AF | 0 | 1 | 1 |
从结果中能直接看出DF分组的总缺失数最多。
内容的提问来源于stack exchange,提问作者user19965401
相关产品推荐
相关产品推荐

