同时删除两列中的重复行[重复]

Posted

技术标签:

【中文标题】同时删除两列中的重复行[重复]【英文标题】:Delete duplicate rows in two columns simultaneously [duplicate] 【发布时间】:2014-10-07 17:12:15 【问题描述】:

我想删除基于两个列的重复行,而不是只删除一个。

我的输入df:

RAW.PVAL  GR     allrl  Bak
0.05      fr     EN1    B12
0.05      fg     EN1    B11
0.45      fr     EN2    B10
0.35      fg     EN2    B066

我的输出:

RAW.PVAL  GR  allrl   Bak
0.05      fr   EN1    B12
0.45      fg   EN2    B10
0.35      fg   EN2    B066

我曾尝试过df<- subset(df, !duplicated(allrl, RAW.PVAL)),但我无法删除这两列同时重复的行。

谢谢!

【问题讨论】:

如果目标列不是后续的,它会起作用吗? @user3091668。现在,您的结果基于重复的列。 【参考方案1】:

如果你想使用subset,你可以试试:

  subset(df, !duplicated(subset(df, select=c(allrl, RAW.PVAL))))
 # RAW.PVAL GR allrl  Bak
 #1     0.05 fr   EN1  B12
 #3     0.45 fr   EN2  B10
 #4     0.35 fg   EN2 B066

但是,我认为@thelatemail 的方法会更好

  df[!duplicated(df[c("RAW.PVAL","allrl")]),]

【讨论】:

对不起,我忘了引用我还有另一个列。我修好了。 @user3091668。看起来您的列每秒都在增加 :=) 我的第一个例子很糟糕。我试图让它简单,但我简化了很多......现在我认为没问题。对不起。【参考方案2】:

使用unique() 删除重复值。

【讨论】:

以上是关于同时删除两列中的重复行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中如何删除重复数据

从熊猫数据框中删除重复行:不区分大小写的比较

从数据框中删除“重复”行(它们在几列中有所不同)[重复]

导入 cvs 但基于特定列中的零删除行[重复]

根据 2 列和第三列中的条件删除重复行

如何根据两列删除所有重复行?