【发布时间】:2018-10-16 20:16:30
【问题描述】:
标题可能听起来令人困惑,想法更直接。
我正在尝试比较地址数据。我有同一个人的多个地址,我需要比较它们。如果他们是平等的,那就太好了。如果不是,我需要将任何不同的内容提取到新列中。
下面有创建 DF 的数据。然后,我使用包裹在 mapply 中的charmatch 在两个方向上比较addr2 和addr1;如果有任何差异,addr_compX_Y 列 = 1。
eg_data <- data.frame(
addr1 = c('123 Main St','742 Evergreen Ter','8435 Roanoke Dr','1340 N State Pkwy') ,
addr2 = c('123 Main St Apt 4','742 Evergreen Terrace','8435 Roanoke Dr Unit 5','1340 N State Pkwy'))
eg_data$addr_comp1_2 <- mapply(charmatch, eg_data$addr1, eg_data$addr2)
eg_data$addr_comp2_1 <- mapply(charmatch, eg_data$addr2, eg_data$addr1)
理想的最终结果数据框类似于第二组示例数据。如果 addr_compX_Y 不等于 1,我会添加一些提取任何不同的东西。
eg_data <- data.frame(
addr1 = c('123 Main St','742 Evergreen Ter','8435 Roanoke Dr','1340 N State Pkwy') ,
addr2 = c('123 Main St Apt 4','742 Evergreen Terrace','8435 Roanoke Dr Unit 5','1340 N State Pkwy'))
eg_data$addr_comp1_2 <- mapply(charmatch, eg_data$addr1, eg_data$addr2)
eg_data$addr_comp2_1 <- mapply(charmatch, eg_data$addr2, eg_data$addr1)
eg_data$diff1_2 = c(NA, NA, NA, NA)
eg_data$diff2_1 = c(' Apt 4', 'race', ' Unit 5', NA)
我知道如何比较,我知道如何提取,但我不确定如何同时进行这两者。
感谢任何帮助。
【问题讨论】:
标签: r string character string-matching