如何在R中合并这些数据时去重复?

问题描述 投票:0回答:1

目标:合并两个excel文件,有明显的重叠,但只覆盖一个数据集的电话号码和记录ID。 合并两个有明显重叠的excel文件,但只覆盖一个数据集的电话号码和记录ID。

我一直在做什么。 就是在excel中用蛮力去掉重复的数据 我把有电话号码的表复制过来,对ID列进行排序,识别出高亮的重复数据,然后拖动 "上 "的电话号码来填补匹配ID的空位。这个过程并不难,但随着记录的增多,就开始变得荒唐乏味了。这些数据 这样 在合并但未去掉重复的Excel文件中。或者只是纯文本。

555555 |    Joe  |  Copy    |   DOB  |AGE | 555 Data Road | DataVille | LA |ZIP|County|(**PHONE GOES HERE**) |Male|White|Doc Name|More info

555555| Joe| Copy |DOB| AGE|    555 Data Road|DataVille|LA| ZIP|County| 555555555 (Phone)                                                                                                                       

而手机应该被添加到空间之间。县级性别问题 为每一条符合两个ID的记录(记录中的第一个数字)。

R中的尝试。

df_final <- merge(df_noPhone, df_Phone, by = c("Record_ID"), all.x = T)

但这只是重复了列("PatientAddress.x "等) 我需要这些列同步起来,这样记录才会完整。

真正棘手的是,虽然 在整个数据中,这种方式并不一致。有时我们根本没有某些记录的电话号码,但我们仍然想在数据中保留它们。

有什么建议吗?我已经尝试过与几乎所有我能想象到的包合并,但有时它最终会在直接的原始数据文件中创造更多的工作,而不是值得的。

谢谢!我的目标:合并两个excel文件。

r excel duplicates merging-data
1个回答
0
投票

你提到.....:

... identifyhighlight duplicates, and drag "up" the phone numbers to fill in the empty space for the matching ID.

我建议:用一个公式替换 "向上拖动",然后交换列。

假设你的数据填的是A2:S3,把:

=IF(M2="",1,0) in U2
=IF(U2=1,INDEX(M:M,MATCH(1,INDEX((0=U:U)*(A2=A:A),0,1),0)),"No data") in V2

并将两者向下拖动。

参考链接 : https:/exceljet.netformulaindex-and-match-with-multiple-criteria(多标准匹配)。

你会注意到我用 "无数据 "来 "填充 "已经有数字的那一列。(我就是这么做的......但这还是取决于你......)

希望能帮到你...

© www.soinside.com 2019 - 2024. All rights reserved.