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

R语言如何删除行内多列含重复值的行?求data.table方案

data.table实现删除行内存在重复值的行

核心逻辑

判断单行所有列的去重后计数是否等于总列数:相等则该行无重复值保留,否则删除。

代码实现

library(data.table)
# 将数据框转为data.table(原地修改,无额外内存拷贝,内存效率更高,适配大数据集)
setDT(df)
# 筛选符合要求的行
res <- df[apply(.SD, 1, function(x) uniqueN(x) == .NCOL(.SD))]

性能优化提示

如果你的数据集列数固定且较少(比如示例中的3列),可以直接写列级比较逻辑,避免apply循环,千万级以上数据集性能提升更明显:

res <- df[V1 != V2 & V1 != V3 & V2 != V3]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:21:03