R 基于另一列的值删除列中的重复信息

R 基于另一列的值删除列中的重复信息,r,dataframe,R,Dataframe,我有两个数据帧: Dt1 Dt 2 我希望以一种方式合并数据帧,其中ID(重复或不重复)将根据条形码删除,我的最终数据帧如下: barcode ID 4 BB 5 BB 8 EE 我试了好几个命令,但都成功了 使用 Idremove = Dt1$ID[Dt1$barcode %in% Dt2$barcode] Dt1 = Dt1[!Dt1$ID %in% Idremove, ] Tidyverse解决方案: libr

我有两个数据帧:

Dt1

Dt 2

我希望以一种方式合并数据帧,其中ID(重复或不重复)将根据条形码删除,我的最终数据帧如下:

   barcode  ID 
    4       BB   
    5       BB
    8       EE
我试了好几个命令,但都成功了

使用

Idremove = Dt1$ID[Dt1$barcode %in% Dt2$barcode]
Dt1 = Dt1[!Dt1$ID %in% Idremove, ]
Tidyverse解决方案:

library(tidyverse)

Dt1%>%
  group_by(ID)%>%
  filter(all(!barcode %in% Dt2$barcode))%>%
  ungroup()

# A tibble: 3 x 2
  barcode ID   
    <int> <chr>
1       4 BB   
2       5 BB   
3       8 EE   
库(tidyverse)
Dt1%>%
分组依据(ID)%>%
筛选器(所有(!条形码%在%Dt2$barcode中))%>%
解组()
#一个tibble:3x2
条形码ID
14 BB
2.5 BB
3.8 EE
数据:

Dt1
Idremove = Dt1$ID[Dt1$barcode %in% Dt2$barcode]
Dt1 = Dt1[!Dt1$ID %in% Idremove, ]
library(tidyverse)

Dt1%>%
  group_by(ID)%>%
  filter(all(!barcode %in% Dt2$barcode))%>%
  ungroup()

# A tibble: 3 x 2
  barcode ID   
    <int> <chr>
1       4 BB   
2       5 BB   
3       8 EE   
Dt1 <- tribble(
  ~barcode, ~ID,
     1L,       'AA',
     2L,       'AA',
     3L,       'AA',
     4L,       'BB',
     5L,       'BB',
     6L,       'CC',
     7L,       'DD',
     8L,       'EE')

Dt2 <- tribble (
  ~barcode, ~weight,
    1L,       55L,
    3L,       45L,
    6L,       35L,
    7L,       80L)