R - 根据另一个数据帧中的列从数据帧中删除行

时间:2016-07-25 18:08:22

标签: r dataframe merge

我有2个数据框,一个叫Athle.df,一个叫medals.df。 两者都有一个名为athlete_id的列,这是一个唯一的键。我遇到的问题是 有些行出现在medals.df表中但不出现在athlete.df中,在这种情况下我需要从medals.df中删除它们。

数据示例:

athletes.df
    athlete_id   V1  V2
    'ttt'        5    6
    '45d'        4    5
    'tjd         4    5

medals.df   
    athlete_id   V3  V4
    'ttt'        2    4
    '45d'        5    5
    'tjd         4    5
    'err'        6    7

如果你看看medals.df的最后一行,它的Athle_id为'err' 在运动员中没有出现。在这种情况下,我想删除整个行。我想在ateletes.df表中找不到他们的athlete_id时,我想从medals.df中删除行。 我知道这可以通过一个循环来完成,但每个数据集的实际数据大约是30000行,这可能需要很长时间,这是他能以一种有效的方式完成这项工作的方式吗?

1 个答案:

答案 0 :(得分:0)

这是您正在寻找的指令:

athletes.df <- athletes.df[athletes.df$athlete_id %in% medals.df$athlete_id, ]