首页 文章

删除R中另一个数据帧中不存在的数据帧中的行[重复]

提问于
浏览
-1

这个问题在这里已有答案:

我是R的新手,但从我一直在读的这篇文章对我来说有点困难 . 我有两个数据框,比如DF1和DF2,两者都有一个感兴趣的变量,比如idFriends,我想创建一个新的数据框,其中所有未出现在DF2中的行都会根据值从DF1中删除idFriends

事实上,在DF2中,每个值只出现一次,而DF1有数千个值,其中许多值重复出现 . 但我不希望R删除重复,我只是想让它搜索DF2,看看DF2中是否存在DF1的EACH值,如果它不存在则删除该行,如果存在则保持原样,并且执行DF1中的每一行都是相同的 .

我希望它很清楚 .

2 回答

  • 2

    dplyr 有一个 semi_join 函数可以做到这一点 .

    DF1 %>% semi_join(DF2, by = "idFriends") # keep rows with matching ID
    DF1 %>% anti_join(DF2, by = "idFriends") # keep rows without matching ID
    
  • 1

    很难说没有可重复的例子,但 %in% 可能就是你要找的:

    DF1[!DF1$idFriends %in% DF2$idFriends,]
    

相关问题