如何将含重复ID的data.frame聚合为按唯一ID统计错误状态的精简数据集
实现方案
核心逻辑:按ID列分组后取Error列的最大值即可满足需求——只要对应ID下存在任意一条Error为1的记录,最大值就为1;所有记录Error都为0时最大值才为0。
方法1:使用dplyr包(简洁易读,最常用)
# 加载dplyr包 library(dplyr) # 替换df为你的原始数据框名称即可 result <- df %>% group_by(ID) %>% summarise(Error = max(Error), .groups = "drop")
方法2:使用R原生函数(无需安装额外依赖包)
# 替换df为你的原始数据框名称即可 result <- aggregate(Error ~ ID, data = df, FUN = max)
方法3:使用data.table包(大数据量下处理效率更高)
# 加载data.table包 library(data.table) # 替换df为你的原始数据框名称即可 setDT(df) result <- df[, .(Error = max(Error)), by = ID]
以上三种方法输出的结果均和你给出的期望样例完全一致,可根据使用习惯选择。
内容的提问来源于stack exchange,提问作者Evan
相关产品推荐
相关产品推荐

