Мне нужно сопоставить два набора данных по трем переменным.
Две из трех переменных не содержат орфографических ошибок (по замыслу).
Нечеткое совпадение требуется только для третьей переменной.
Стандартный fuyyzmerge генерирует некоторые проблемы путём нечеткого соединения всех трех переменных.
Есть ли способ указать, какой из трех должен быть нечетким, а какой - точным?
Воспроизводимый пример:
dataset_1 <- setNames(data.frame(c(1995,1996,1995,1996),c("AA","AA","BB","BB"),c("AAAA","AAAA","BBBB","BBBB")), c("var_1", "var_2", "var_3"))
dataset_2 <- setNames(data.frame(c(1995,1996,1995,1996),c("AA","AA","BB","BB"),c("AAAA","AAAA","BBBB","BBBC"),c("A","B","C","D")), c("var_1", "var_2", "var_3","var_4"))
merged <- stringdist_join(dataset_1, dataset_2,
by=c("var_1","var_2","var_3"),
max_dist = 2,
method = c("soundex"),
mode = "full",
ignore_case = FALSE)
Идеальный результат:
merged <- setNames(data.frame(rep(1995,4),c("AA","AA","BB","BB"),c("AAAA","AAAA","BBBB","BBBB"),c("A","B","C","D")), c("var_1", "var_2", "var_3","var_4"))