正如joran在他的评论中指出的那样 - data.table中的反连接实现更快:
setDT(df.A)[!df.B, on = c("ID1","ID2","ID3")]
在我的测试数据执行从30-35秒减少到不到2秒。
虽然仍然对更快的基础R版本感兴趣,但这是一个正确的答案。
最好 斯蒂芬