You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R中合并两个data.table:移除重叠重复项同时保留各数据集内部重复

R data.table 优先保留指定数据集记录的合并方案

实现逻辑

核心逻辑是先过滤掉dty中与dtx存在ID-date-code重叠的所有记录,再将完整dtx与过滤后的dty合并,既满足重叠场景下dtx优先的要求,也保留两个数据集各自内部的重复记录和来源标记。

实现代码

library(data.table)

# 提取dtx中所有唯一的ID-date-code匹配键
dtx_unique_keys <- unique(dtx[, .(ID, date, code)])

# 过滤dty,仅保留未在dtx中出现过的ID-date-code对应的所有记录
dty_clean <- dty[!dtx_unique_keys, on = .(ID, date, code)]

# 合并两个表得到最终结果
dt_combined <- rbindlist(list(dtx, dty_clean), use.names = TRUE)

# 可选:按ID、日期、编码、来源排序方便查看
setorder(dt_combined, ID, date, code, dataset)

方案说明

  • 完整保留dtx的全部记录,包括同一ID-date-code下的多条重复条目
  • dty中仅排除与dtx ID-date-code完全匹配的所有条目,自身内部的非重叠重复记录会完整保留
  • 所有行的dataset来源标记不会被修改或丢失
    该方法完美适配多记录场景,不会出现之前rbindlist、merge方法误删内部重复或保留重叠记录的问题

内容的提问来源于stack exchange,提问作者jmogil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 18:27:02