首页 > 解决方案 > 加入两个数据框并消除重复项

问题描述

我有一个数据框,第一列称为 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 

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

> res

id  dive_type
 3         NF
 4          F
 6          F
 7         NF

谢谢

标签: rdataframejoinmergeduplicates

解决方案


您可以使用它%in%来检查每个idindf1是否在 中df2$id,以及df1基于否定的子集:

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

推荐阅读