如何根据匹配的几个列从另一个 Dataframe 中替换NA值

qvk1mo1f  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(97)

DF1
| 姓氏|DOB|访视日期|ID编号| ID Number |
| --|--|--|--| ------------ |
| 史密斯|2014年3月2日|2019 - 02 - 12|一百二十三| 123 |
| 史密斯|2014年3月2日|2020年11月01日|不适用| NA |
| 步行者|一九四四年十月十四日|2019 - 05 - 04|五二三| 523 |
| 史密斯|一九七五年十一月二十二日|二○年十二月二十五日|不适用| NA |
DF2
| 姓氏|DOB| ID编号| ID Number |
| --|--|--| ------------ |
| 史密斯|2014年3月2日|一百二十三| 123 |
| 步行者|一九四四年十月十四日|五二三| 523 |
| 史密斯|一九七五年十一月二十二日|四二二| 422 |
| 费尔南多|1983年12月7日|九八九| 989 |
你好,请问df 2中缺少的身份证号码,df 1中缺少的身份证号码怎么填,但必须是姓名和出生日期都匹配的才行?这是一个子集,我的实际数据集有大约5000个条目。
我曾尝试使用left_join,但最终得到的行比开始时多,因为它似乎重复了条目。我对R很陌生,所以非常感谢大家的帮助,谢谢。

k3bvogb1

k3bvogb11#

我们可以在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

字符串

相关问题