我正在寻找一种方法来匹配两个不同的地址数据帧。两者都包含一个文本字符串(在我的示例中为“Line”列)、一个邮政编码/邮政编码类型标识符(“PC”列“)和一个唯一的Ref或ID代码。我需要将结果匹配放在一个新的数据框中,格式如下: DF1$Line,DF1$PD,DF2$Line,DF2$PD,Ref,ID和某种详细描述匹配强度的数字(这是基于下面的示例代码)。
我的实际数据集包含数千条记录,我一直在尝试使用'PC‘列对两个数据集进行子集,然后按照this的方式执行某种匹配,但得到的匹配结果是完全错误的。
这是一个与我的数据相似的虚构数据集(在这些示例中,每个数据集中的行彼此对应,不幸的是,我的实际数据不是这样格式化的)。
DF1 <- data.frame(
Line = c("64 London Street, Jasper","46 London Road, Flat 2, Jasper","99 York Parade, Yorkie","99 Parade Road, Placename","29 Road Street, Townplace","92 Parade Street, Yorky"),
PC = c("ZZ1 4TY","ZZ1 4TY","PP1 9TR","ZZ1 4TY","PP1 9TR","PP1 9RT"),
Ref = c("123451","567348","23412","98734","43223","32453")
)和
DF2 <- data.frame(
Line = c("64 London St, Jasper","Flat 2, 46 Road, London, Jasper","99 York Parade, Yorky","99 Parade Road, Placenames","Flat 3, 29 Road Street, Townplace, Townplace","92 Street, Parade, Yorkie"),
PC = c("ZZ1 4TY","ZZ1 4TY","PP1 9TR","ZZ1 4TY","PP1 9TR","PP1 9RT"),
ID = c("ABGED","GGFRW","UYTER","RTERF","WERWE","OYUIY")
)任何帮助解决这个问题的人都会非常感激,因为任何帮助我量化匹配精确度的指标都会非常感谢。谢谢。
发布于 2016-02-17 19:59:24
我会考虑首先使用agrep评估潜在的匹配
for (i in 1:length(DF1$Line)) {
matchDF1 <- agrep(pattern = DF1$Line[i], x = DF2$Line, max.distance = 0.5,
value = TRUE)
}https://stackoverflow.com/questions/31630897
复制相似问题