首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模糊字符串匹配与归并

模糊字符串匹配与归并
EN

Stack Overflow用户
提问于 2015-05-09 03:04:35
回答 1查看 1.8K关注 0票数 1

我正在尝试用字符串place合并两个数据集,它很相似,但在许多情况下并不完全相同。

例如,在另一个数据集中可以有伦敦、英国和仅伦敦这样的记录。我希望在每个记录旁边有一个匹配的分数,并根据相似性分数合并它们(如果它大于.80,则合并)。

有没有办法用变量place合并两个数据集A和B?

第一个数据集A有四个变量:name, place, origin, ranking

第二个数据集B有三个变量:ratings, place, destinations, trip time

我想合并数据集A和数据集B。

最终合并的数据集应具有以下变量:name, place, origin, ranking, ratings, destinations, trip time

我想基于数据集A进行合并(就像SQL中的左连接)。我想要A的所有记录以及从B添加的列。

EN

回答 1

Stack Overflow用户

发布于 2015-05-09 04:16:15

stringdist library有很多功能,这里有一个使用soundex相似度的例子:

代码语言:javascript
复制
library(stringdist)

#dummy data
df1 <- data.frame(ID1=c("london","USA","UK","ball","xyz"))
df2 <- data.frame(ID2=c("lndon","US","UKS","bull","ttt"),
                  x=1:5)

#get soundex
df1$soundex <- phonetic(df1$ID1, method = c("soundex"), 
                        useBytes = FALSE)
df2$soundex <- phonetic(df2$ID2, method = c("soundex"), 
                        useBytes = FALSE)

#merge on soundex column, keep all rows from df1
merge(df1, df2, by="soundex", all.x=TRUE)

#output
#   soundex    ID1   ID2  x
# 1    B400   ball  bull  4
# 2    L535 london lndon  1
# 3    U200    USA    US  2
# 4    U200    USA   UKS  3
# 5    U200     UK    US  2
# 6    U200     UK   UKS  3
# 7    X200    xyz  <NA> NA
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30131088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档