我有以下两个数据框:
Dt1
barcode ID
1 AA
2 AA
3 AA
4 BB
5 BB
6 CC
7 DD
8 EE
Dt 2
barcode weight
1 55
3 45
6 35
7 80
我想合并数据框,使其以条形码为基础删除重复或不重复的ID,我的最终数据框将如下所示:
barcode ID
4 BB
5 BB
8 EE
我尝试了几个命令,但是任何一个都可以。
答案 0 :(得分:5)
使用
Idremove = Dt1$ID[Dt1$barcode %in% Dt2$barcode]
Dt1 = Dt1[!Dt1$ID %in% Idremove, ]
答案 1 :(得分:1)
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
数据:
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)