如何合并两个长度不同的数据帧,另一个是另一个的子集

时间:2017-11-23 09:25:44

标签: r merge

我有两个数据框df1df2df1包含member_IDresult_id df2包含member_IDresult_id

但是,在df1我有1000行,在df2我有1200行。 df1包含df2中的每一行以及其他200行。

我需要df3,其中包含member_IDresult_ID, 其中包含所有1200行,如果df1中有result_id,则应使用df1的值,如果df1中没有result_id(其余200行) ),应使用df2中的result_ID。

合并时,df将仅包含1000个匹配的行。

1 个答案:

答案 0 :(得分:0)

您可以使用dplyr包并执行anti_join以获取df2中包含的其他结果,然后执行rbind以将所有数据绑定在一个数据框中:

library(dplyr)
df_tmp <- anti_join(df1 ,df2, by=member_ID)
df3 <-rbind(df_tmp, df1)