【问题标题】:Join two dataframes and eliminate duplicates [duplicate]加入两个数据框并消除重复项[重复]
【发布时间】:2020-10-27 22:53:10
【问题描述】:

我有一个数据框,第一列称为 id(1、2、3、4、5 等)并对应于潜水。 另一列指定潜水类型,可以是 F 和 NF。

我有另一个数据框,其中包含所有可疑的 NF 潜水的 ID,应该从分析中排除。

如何消除第一个数据帧中具有包含在第二个数据帧中的 id 的行?

例子:

> df1

id  dive_type
 1          F
 2          F
 3         NF
 4          F
 5          F
 6          F
 7         NF
 8          F 

> df2

id  dive_type
 1          F
 2          F
 5          F
 8          F 

我的目标是删除 df1 中存在于 df2 中的所有 id(在本例中为 id 的 1、2、5 和 8)并得到如下内容:

> res

id  dive_type
 3         NF
 4          F
 6          F
 7         NF

谢谢

【问题讨论】:

  • 如果您使您的问题可重现,则更容易提供帮助:以对象的形式包含一个最小数据集,例如,如果数据框为 df minimal reproducible example 和 How to Ask

标签: r dataframe join merge duplicates


【解决方案1】:

您可以使用%in% 来检查df1 中的每个id 是否在df2$id 中,并根据其否定来检查df1 的子集:

df1[!(df1$id %in% df2$id), ]
#>   id dive_type
#> 3  3        NF
#> 4  4         F
#> 6  6         F
#> 7  7        NF

【讨论】:

    猜你喜欢
    • 2018-06-11
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 2011-11-18
    • 2015-04-22
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    相关资源
    最近更新 更多