我有一个关于根据其他数据的列找到不重复的行的问题
我知道有很多参考可以删除和查找一个数据上的重复行,例如dt[duplicated(dt)]
或dt[!duplicated(dt)]
。
但是,如果我想根据其他数据查找或删除重复的行,我该怎么办?
# dt1
ColA ColB ColC ColD
TA43 S2230 Amy 2014-08-08
TA63 T1205 Andy 2014-01-01
TI28 L1288 Peter 2014-01-08
TI28 L2231 Roger 2014-01-08
TI92 A2206 Jean 2014-01-03
TI14 E2240 Freda 2014-01-05
TI69 N1029 Tina 2014-01-05
# dt2
ColA ColB ColC ColD
TA63 T1205 Andy 2014-01-01
TA86 L1288 Peter 2014-01-08
TA86 L2231 Roger 2014-01-08
TA93 A2206 Jean 2014-01-12
TA41 E2240 Freda 2014-01-05
TI69 N1029 Tina 2014-01-05
我想要的是那些不重复的行。
# new dt1
ColA ColB ColC ColD
TA43 S2230 Amy 2014-08-08
TI28 L1288 Peter 2014-01-08
TI28 L2231 Roger 2014-01-08
TI92 A2206 Jean 2014-01-03
TI14 E2240 Freda 2014-01-05
# new dt2
ColA ColB ColC ColD
TA86 L1288 Peter 2014-01-08
TA86 L2231 Roger 2014-01-08
TA93 A2206 Jean 2014-01-12
TA41 E2240 Freda 2014-01-05
更新
我在这里附上答案。
dt1[!dt2, on = c("ColA", "ColB", "ColC", "ColD")]
dt2[!dt1, on = c("ColA", "ColB", "ColC", "ColD")]