Название может показаться странным, идея более проста.
Я пытаюсь сравнить адресные данные.У меня есть несколько адресов для одного человека, мне нужно сравнить их.Если они равны, отлично.Если это не так, мне нужно извлечь что-то другое в новый столбец.
Ниже приведены данные, которые создают DF.Затем я использую charmatch, обернутый внутри mapply, чтобы сравнить 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)
Я знаю, как сравнивать, я знаю, как извлечь, но я не уверен, как я делаю их обав то же время.
Любая помощь приветствуется.