如何根据匹配多列从另一个数据框中替换 NA 值

huangapple go评论63阅读模式
英文:

How to replace NA values in one dataframe from another dependent on matching several columns

问题

df1

姓名 姓氏 出生日期 访问日期 身份证号码
亚当 史密斯 2014/02/03 2023/02/12 123
亚当 史密斯 2014/02/03 2020/01/11 NA
沃克 1944/10/14 2019/04/05 523
卡门 史密斯 1975/11/22 2000/12/25 NA

df2

姓名 姓氏 出生日期 身份证号码
亚当 史密斯 2014/02/03 123
沃克 1944/10/14 523
卡门 史密斯 1975/11/22 422
丹尼尔 费尔南多 1983/12/07 989

你好,
请问如何从df2中填写df1中缺失的身份证号码,但仅在姓名、姓氏和出生日期完全匹配的情况下进行?这只是一个子集,我的实际数据集有约5000条记录。

我尝试过使用left_join,但结果比我开始时的行数多,因为它似乎会复制条目。我对R非常陌生,所以非常感谢您的任何帮助,谢谢。

英文:

df1

Name Surname DOB Visit date ID Number
Adam Smith 02/03/2014 02/12/2023 123
Adam Smith 02/03/2014 01/11/2020 NA
Ben Walker 14/10/1944 04/05/2019 523
Carmen Smith 22/11/1975 25/12/2000 NA

df2

Name Surname DOB ID Number
Adam Smith 02/03/2014 123
Ben Walker 14/10/1944 523
Carmen Smith 22/11/1975 422
Daniel Fernando 07/12/1983 989

Hello,
Could you please tell me how to fill in the missing ID numbers in df1 from those in df2, but only if the name and surname and DOB all match? This is a subset, my actual dataset has ~ 5000 entries.

I have tried using left_join, but I then end up with more rows than I started with because it appears to duplicate entries. I'm very new to R, so all help much appreciated, thank you.

答案1

得分: 1

我们可以在dplyr包中使用rows_patchunmatched="ignore"将忽略df2中不在df1中的行。

library(dplyr)
rows_patch(df1, df2, by = c('Name', 'Surname', 'DOB'), unmatched = "ignore")

    Name Surname        DOB Visit_date ID_Number
1   Adam   Smith 02/03/2014 02/12/2023       123
2   Adam   Smith 02/03/2014 01/11/2020       123
3    Ben  Walker 14/10/1944 04/05/2019       523
4 Carmen   Smith 22/11/1975 25/12/2000       422
英文:

We can use rows_patch in dplyr package. unmatched="ignore" would ignore rows in df2 not in df1.

library(dplyr)
rows_patch(df1,df2,by=c('Name','Surname','DOB'),unmatched="ignore")

    Name Surname        DOB Visit_date ID_Number
1   Adam   Smith 02/03/2014 02/12/2023       123
2   Adam   Smith 02/03/2014 01/11/2020       123
3    Ben  Walker 14/10/1944 04/05/2019       523
4 Carmen   Smith 22/11/1975 25/12/2000       422

huangapple
  • 本文由 发表于 2023年7月27日 23:45:45
  • 转载请务必保留本文链接:https://go.coder-hub.com/76781445.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定