r - R中跨列的模糊匹配
问题描述
如何衡量名称在 r 中的相似程度?换句话说,可以进行模糊匹配的程度。
例如,我正在使用如下所示的数据框:
Name.1 <- c("gonzalez", "wassermanschultz", "athanasopoulos", "armato")
Name.2 <- c("gonzalezsoldevilla", "schultz", "anthanasopoulos", "strain")
df1 <- data.frame(Name.1, Name.2)
df1
Name.1 Name.2
1 gonzalez gonzalezsoldevilla
2 wassermanschultz schultz
3 athanasopoulos anthanasopoulos
4 armato strain
从数据中可以清楚地看出,第 1 行和第 2 行足够相似,可以确信名称相同。第 3 行是相同的名称,即使拼写错误,而第 4 行完全不同。
作为输出,我想创建第三列来描述名称之间的相似程度或返回某种布尔值以指示可以进行模糊匹配。
解决方案
包中stringdist
有一个函数stingsim
,它为您提供一个介于 0 和 1 之间的数字,用于表示字符串之间的相似性。
Name.1 <- c("gonzalez", "wassermanschultz", "athanasopoulos", "armato")
Name.2 <- c("gonzalezsoldevilla", "schultz", "anthanasopoulos", "strain")
library(stringdist)
df1 <- data.frame(Name.1, Name.2)
df1$similar <- stringsim(Name.1, Name.2)
df1
#> Name.1 Name.2 similar
#> 1 gonzalez gonzalezsoldevilla 0.4444444
#> 2 wassermanschultz schultz 0.4375000
#> 3 athanasopoulos anthanasopoulos 0.9333333
#> 4 armato strain 0.1666667
推荐阅读
- xampp - Xampp 将我发送到仪表板而不是站点
- javascript - 在 Vue V2 中,如何合并两个对象数组并将它们保存到本地存储?
- css - 如何仅在需要时显示自定义滚动条
- android - 带有网站链接的片段按钮不起作用
- html - 在 css 文件中完全声明高度和颜色,但在 index.html 文件中它没有按设计显示
- python - 如何使用 python selenium webdriver 抓取在检查器中不可见的 iframe?
- image - 我可以使用 GEE imagecollection 过滤覆盖整个 ROI 的图像吗?
- java - CardView onClick java.lang.NullPointerException
- reactjs - useEffect 无限期地调用状态或根本不调用状态
- image-processing - 如何根据文本自动旋转图像?