【问题标题】:remove duplicate values based on 2 columns删除基于 2 列的重复值
【发布时间】:2016-04-26 20:33:22
【问题描述】:

我想根据数据框中 2 列中的匹配项删除重复值,v2v4 必须在要删除的行之间匹配。

> df

   v1  v2  v3   v4  v5
1  7   1   A  100  98 
2  7   2   A  100  97
3  8   1   C   NA  80
4  8   1   C   78  75
5  8   1   C   78  62
6  9   3   C   75  75

结果

> df

   v1  v2  v3   v4  v5
1  7   1   A  100  98 
2  8   1   C   NA  80
3  8   1   C   78  75
4  9   3   C   75  75

我知道我想要类似的东西:

df[!duplicated(df[v2] && df[v4]),] 

但这不起作用。

这个问题专门针对数据框,对于那些有 data.table 的人,请参阅Filtering out duplicated/non-unique rows in data.table

【问题讨论】:

  • 在您提供的示例中,键似乎是v1v4(第一列实际上代表行名)。试试df[!duplicated(df[,c("v1","v4")]),]

标签: r duplicates


【解决方案1】:

这会给你想要的结果:

df [!duplicated(df[c(1,4)]),]

【讨论】:

  • 嗨,如果您想使用其列名(例如 v1 和 v4)而不是列号 1、4 怎么办?
  • @Bustergun 你可以使用 df[!duplicated(df[c("V1","V4")]),]
猜你喜欢
  • 1970-01-01
  • 2016-12-02
  • 2016-10-04
  • 2015-12-17
  • 2017-05-24
  • 2018-08-13
  • 2021-11-03
  • 2022-01-24
相关资源
最近更新 更多