我有两个数据帧,一个用于2008,另一个用于2004和2012数据。数据帧的示例如下。
observation year y code_location location.x location.y y.y
1 2004 124 23-940 town no. 1 town no. 1 town no.1 300
2 2004 395 "23-345 town # 2" "town # 2" "town no. 2" 234
3 2004 1349 23-942 city St 23 city St 23 city St 23 947
4 2012 930 53-443 Mtn town 5 Mtn town 5 Mtn town 5 102
5 2012 185 99-999 town no. 1 town no. 1 town no. 1 300
6 2012 500 23-941 town Number 2 town Number 2 town no. 2 234
7 2012 185 34-942 city Street 23 city Street 23 city St 23 947
8 2012 195 23-943 Mt town 5 Mt town 5 Mtn town 5 102
我想使用位置变量将df_08合并到df_04_12(代码在多年内不一致)。但是,位置名称略有不同,例如Mtn v.Mt或no。 v。#,导致不匹配。鉴于位置名称之间的这些微小差异,有没有办法合并这些数据框并获得以下内容?我目前没有任何代码,因为我不确定如何匹配合并的位置。
var firstQuery = queries.head
val queriesNoHead = queries.drop(0)
for( q <- queriesNoHead ){
firstQuery = firstQuery union q
}
答案 0 :(得分:0)
您可以在字符变量上使用levenshtein距离,但无法考虑符号。我建议您在合并之前清除所有符号,然后使用stringdist包。这个问题没有干净的解决方案,您必须开发自己的方法,因为它与您的数据有关。 模糊匹配中使用的一些方法是字符串距离计算和数据的SoundX转换,您只需要找出适合您的数据的方法。