R 大数据集的模糊合并

R 大数据集的模糊合并,r,data-cleaning,fuzzy,R,Data Cleaning,Fuzzy,我有一个很大的数据集(300k),我想清理一个特定的列—名称列。 问题是,由于人为输入错误,同一个名称可能会有多个非故意拼写,例如“Benjamin”拼写为“Banjamin” 我尝试了openrefine,但ngram合并和键碰撞都未能解决上述示例,而Leveshtein距离公式将永远持续并冻结我的计算机。我尝试了Python,但fuzzywuzzy+for循环再次需要花费很长时间,而且似乎不可行。R工作室似乎是一个很好的选择,但我不知道如何处理这个问题?我尝试了软件包'refinr',但它与

我有一个很大的数据集(300k),我想清理一个特定的列—名称列。 问题是,由于人为输入错误,同一个名称可能会有多个非故意拼写,例如“Benjamin”拼写为“Banjamin”

我尝试了openrefine,但ngram合并和键碰撞都未能解决上述示例,而Leveshtein距离公式将永远持续并冻结我的计算机。我尝试了Python,但fuzzywuzzy+for循环再次需要花费很长时间,而且似乎不可行。R工作室似乎是一个很好的选择,但我不知道如何处理这个问题?我尝试了软件包'refinr',但它与openrefine相同,无法处理“Benjamin”和“Banjamin”类型的拼写错误。只有当有重复的字母或单词之间有空格时,它才是好的

有人对我该做什么有什么建议吗


谢谢

我认为
fuzzyjoin
-套餐会满足您的需求

df1 <- data.frame( name = c("James", "Benjamin", "Bert"), id = 1:3 )
df2 <- data.frame( name = c("Banjamin", "David", "Jemes"), id = 4:6 )


library( fuzzyjoin )
stringdist_join( df1, df2, by = "name")

#     name.x id.x   name.y id.y
# 1    James    1    Jemes    6
# 2 Benjamin    2 Banjamin    4

df1欢迎来到SO!请花点时间仔细阅读如何使用。我认为谷歌搜索“fuzzy join in R”应该会给你很多选择。你可能会发现这个软件包特别有用。你有一个非故意/不正确拼写的列表吗?TMM,标题应该是“模糊匹配”,您可能正在寻找类似于包的东西,该包具有近似字符串匹配和距离的功能。但是考虑到你的问题非常广泛,要给你一个准确的答案并不容易。我们所能做的就是给你一些指示,但你必须自己去弄清楚细节。