gpt4 book ai didi

r - 不完美的字符串匹配

转载 作者:行者123 更新时间:2023-12-04 10:29:06 24 4
gpt4 key购买 nike

假设我有两列名称。第一列中的所有名称都在第二列中,但顺序是随机的,并且其中一些不是完全匹配的。所以也许在一栏中有约翰史密斯的名字,在第二栏中有约翰史密斯或乔恩史密斯。是否有任何相当简单的 R 方法来执行“最佳匹配”?

最佳答案

给定一些这样的数据:

df<-data.frame(x=c('john doe','john smith','sally struthers'),y=c('John Smith','John_smith','JonSmith'))

你可以用几个 gsub走很长的路s 和 tolower :
df$y.fix <- gsub('[[:punct:]]', ' ', df$y)
df$y.fix <- gsub(' ', '', df$y.fix)
df$y.fix <- tolower(df$y.fix)
df$x.fix <- tolower(gsub(' ', '', df$x))

然后 agrep是你想要的:
> agrep(df$x.fix[2], df$y.fix)
[1] 1 2 3

有关更复杂的混淆字符串,请参阅 this post from last week .

关于r - 不完美的字符串匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9196485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com