【发布时间】:2021-07-26 14:21:03
【问题描述】:
我有两个部门名称类似于这些的数据框:
d1 <- data.frame(depto=c("antioquia", "arauca", "arauca", "cauca", "popayan cauca", "guayabal cundinamarca", "cundinamarca", "cundinamarca", "fresno - tolima", "tolima", "santander", "norte santander"))
d2 <- data.frame(depto=c("Antioquia", "Arauca", "Cauca", "Cundinamarca", "Vichada", "Tolima", "Norte de Santander", "Valle del Cauca", "Santander"), id=c(1,2,3,4,5,6,7,8,9))
变量“depto”应该是相同的,但有一些不同。我尝试使用 stringdist 来匹配两个数据框。
stringdist_left_join(d1, d2, by ="depto", distance_col = NULL)
结果如下:
1 antioquia Antioquia 1
2 arauca Arauca 2
3 arauca Cauca 3
4 arauca Arauca 2
5 arauca Cauca 3
6 cauca Arauca 2
7 cauca Cauca 3
8 popayan cauca <NA> NA
9 guayabal cundinamarca <NA> NA
10 cundinamarca Cundinamarca 4
11 cundinamarca Cundinamarca 4
12 fresno - tolima <NA> NA
13 tolima Tolima 6
14 santander Santander 9
15 norte santander <NA> NA
我想知道一种改进方法。第一个问题是 Cauca 和 Arauca 的部门总是匹配为相同的。第二个问题是 d1 中的某些部门包括直辖市(例如“guayabal cundinamarca”)但我希望匹配方法知道是否有一些额外的单词但部门名称也包含在要匹配的字符串中它(在这种情况下与昆迪纳马卡)。第三个问题是一些部门名称有相同的单词但不同(例如 Norte de Santander 和 Santander),有时不匹配。谢谢
【问题讨论】:
标签: r match stringdist