我有2个包含相同列的数据框。一个叫做newGames,另一个称为existingGames。我想要做的是检查comap是两个数据帧之间的newGames game_pk和sv_id列。如果两个表中都存在game_pk和sv_id,我想从newGames数据框中删除该行。
N.game_pk N.sv_id E.game_pk E.sv_id
1 440697 123456_789012 NA NA
2 440698 123456_789012 440698 NA
3 440699 123456_789012 440699 123456_789012
e。代表现有的游戏数据框,N代表newGames数据框。我最终想要的是一个newGames数据框,它显示了现有游戏数据框中不存在egame_pk和e.sv_id(整个游戏)或e.sv_id(游戏中的单个游标)的所有列。 Sv_id是一个时间戳,因此可以为不同的game_pk提供相同的值,因此"组合"这些字段使行唯一。
这适用于缺少游戏(440697)
newGames2 <- newGames[!(newGames$game_pk %in% existingGames$game_pk),]
但我试过
newGames2 <- newGames[!(newGames$game_pk %in% existingGames$game_pk) | (!(newGames$game_pk %in% existingGames$game_pk) & !(newGames$sv_id %in% existingGames$sv_id)),]
它只选择完整的数据帧而不是单个丢失的音高。
答案 0 :(得分:2)
以下是来自anti_join
的{{1}}如何做到这一点:
dplyr