考虑以下示例dataframe:
df <- data.frame(Client = c('Client1', 'Client2', 'Client3', 'Client4', 'Client5'),
'Home Address' = c('123 N. Franklin Ave.', '345 Circle Drive', '567 Smith St. Suite 5', '678 Buchanan Rd. SW', '12 State Street'),
'Mail Address' = c('123 Franklin Avenue', '345 S. Circle Dr.', '567 Smith Street Ste 5', '678 Buchanan Road', '17 Ralph Lane'))
如果你仔细观察与地址相关的列,它们基本上都是(除了一个),唯一的区别是包括或排除了方向或街道缩写。我想做的是在两者之间进行比较,以确定两个地址列之间是否至少有95%的匹配。
因此,示例结果将是df的附加列,说明“是”或“否”。
如何做到这一点?
1条答案
按热度按时间f4t66c6m1#
这里是一个使用Jaro-Winkler距离的例子,它使用某个“窗口”内匹配字符的数量、换位和两个字符串的长度来计算相似性分数。在开头具有匹配字符的字符串的权重更大(
p
)。您可以使用此
jw
列为数据创建截止值。输出