我有两个数据框要比较。数据帧的截图如下所示
我要检查三件事:
- 第一次检查:数据 1 中存在但数据 2 中不存在的项目 [Item4; 子项4;子项1]
- 2nd Check:数据 1 中不存在但数据 2 中存在的项目 [Item6; 子项1;子项1]
- 第三次检查:两个列表中都存在的项目,但值已更改 [Item2; 子项5;子项1]
我使用 anti_join() 轻松完成了第一次和第二次检查
MissingfromData2 <- anti_join(Data1,Data2, by = c("Property.1","Property.2","Property.3"))
MissingfromData1 <- anti_join(Data2,Data1, by = c("Property.1","Property.2","Property.3"))
但是,对于第 3 次检查,我似乎无法锁定by=c("Property.1","Property.2","Property3")
当我执行以下操作时
changedValue1 <- setdiff(Data1,Data2, by = c("Property.1","Property.2","Property.3"))
changedValue2 <- setdiff(Data2,Data1, by = c("Property.1","Property.2","Property.3"))
我得到了不需要的附加行(来自检查 1 和检查 2)。
如何仅获取更改值的结果?