在R中的大数据集中记录链接和模糊名称匹配

时间:2015-03-27 21:18:51

标签: r merge

我试图合并两个大型数据集。公共变量,名字和姓氏,在数据集之间的拼写方式不同,并且有许多重复,即使在拼写相似的名称之间也是如此。我已经包含了文件的下载链接和下面的一些R代码。我将介绍我尝试过的以及出了什么问题。

有一些R教程试图解决(常见的)记录链接问题,但没有处理大型数据集。我希望SO社区可以帮助我解决这个问题。

- 尝试与正则表达式匹配的代码 -

由于以前的SO建议的帮助,我的第一次尝试是使用agrep和常规字符串匹配。这缩小了名称,但导致了太多的重复

#Load files#

expends12 <- fread("file path for FEC", sep="|", header=FALSE)
crunchbase.raw <- fread("file path for internet founders")

exp <- expends12
cr <- crunchbase.raw

#user regular string matching#
exp$xsub= gsub("^([^,]+)\\, (.{7})(.+)", "\\2 \\1", tolower(expends12$V8))
cr$ysub= gsub("^(.{7})([^ ]+) (.+)", "\\1 \\3", tolower(cr$name))

#merge files#
fec.merge <- merge(exp,cr, by.x="xsub", by.y="ysub")

结果是6,900行,因此有很多重复项。许多行是与互联网创始人具有相似名称的人,例如亚历山大·布莱克,但来自不同的州并且具有不同的职称。所以,现在是一个寻找真正的互联网创始人的问题。

缩小结果的一个选项是按状态过滤结果。所以,我可能只会选择来自加利福尼亚州或纽约州的亚历山大·布莱克,因为这是大多数创业公司成立的地方。我也可能只选择某些职位,如CEO或创始人。但是,许多创始人在他们的公司之前和之后都有工作,所以我不想过多地缩小职位。

或者,有一个r包,RecordLinkage,但据我所知,数据集之间需要有类似的行和列,这是此任务的不起作用

我熟悉R,但统计知识和编程能力有限。非常感谢任何一步一步的帮助。谢谢,如果下载数据有任何问题,请告诉我。

0 个答案:

没有答案