如何合并具有近似公共值的不同行号的两个表? (使用R)

时间:2019-05-01 12:38:54

标签: r merge

当公共变量不完全相似时,我很难理解如何在R中合并两个表。

为提供背景信息,我从Twitter和政府部门下载了两个有关政客的信息资源,并创建了两个不同的数据框架。在第一个数据帧(数据集1)中,我有Twitter上出现的政治人物的名字。但是,我不知道这些政治人物现在是否在起作用。为了发现这一点,我可以使用第二个日期框架。 第二个数据框(数据集2)包含名称和有关正在使用的政治人物的其他信息。 名和姓是两个表中唯一包含的变量。这两个表的行数不同。

问题:

  1. 第一个数据集中的名称表示为一个变量(名字+姓氏),而在第二个数据集中,名称分为两个变量(姓氏和名字)。我使用“分隔”来分隔第一个表中的“名称”列。 parliament_twitter_tempdata <-分开(parliament_twitter_tempdata,col = name,成= c(“ firstname”,“ lastname”),extra =“ merge”)。 但是我有问题,因为两个数据集都有:
    • 由名字组成和由姓氏组成
    • 名字和姓氏顺序错误

我提供了两个数据集的一部分(从姓氏“ J”到“ M”)的图片,以说明相似值之间的差异或姓氏名的倒置。

如何改进我的代码?

  1. 两个表中的名称并不完全相似。有些人没有在Instagram中写正式名称。是否有任何函数可以比较两个表,找到对应于80%左右的变量集,并将数据框1(来自Twitter)中的名称替换为数据框2的正式名称?例如数据集1:玛丽•加布尔;数据集2:Marie Gabour Jolliet —>将数据集1中的Marie Gabour替换为Marie Gabour

有人可以帮我吗?非常感谢 !

[数据集1的一部分(姓氏从“ J”到“ M”)1} [数据集2的名字部分(姓氏从“ J”到“ M”){{3 }}

1 个答案:

答案 0 :(得分:1)

模糊匹配可能是前进的一种方式:

https://cran.r-project.org/web/packages/fuzzyjoin/fuzzyjoin.pdf

此外,清理功能可能会有所帮助(例如,使用toppper或删除键上的空格)。