如何基于4个标识列提取部分重复行生成新DataFrame
提取重复行到新DataFrame的方法
你可以用两种适配tidyverse风格的方法,提取基于指定4个ID列重复的所有行:
方法1:双向匹配重复项
duplicated()默认只标记每组重复项里除第一行外的记录,搭配fromLast = TRUE能标记除最后一行外的重复项,两者取并集就能拿到所有重复行:
# 生成包含所有重复行的新数据集 DuplicateRows <- FullData %>% filter(duplicated(., by = c("Link", "BillType", "BillNumber", "Name")) | duplicated(., by = c("Link", "BillType", "BillNumber", "Name"), fromLast = TRUE))
方法2:分组筛选多记录组
按4个ID列分组后,筛选出组内行数大于1的所有记录,也能得到全部重复行:
# 生成包含所有重复行的新数据集 DuplicateRows <- FullData %>% group_by(Link, BillType, BillNumber, Name) %>% filter(n() > 1) %>% ungroup()
核对后去重
等你完成DuplicateRows的内容核对,直接用你已掌握的代码对原始数据集去重即可:
FullData <- FullData %>% distinct(Link, BillType, BillNumber, Name, .keep_all = TRUE)
内容的提问来源于stack exchange,提问作者user17073706
相关产品推荐
相关产品推荐

