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
相关产品推荐
相关产品推荐

