У меня есть таблица с несколькими тысячами «потенциальных» дубликатов людей, и задача состоит в том, чтобы идентифицировать эти потенциальные дубликаты и назначить им всем общий идентификатор.
Я использовал stringdist_inner_join в столбцах, которые меня интересуютс помощью, чтобы присоединить таблицу к себе и вернуть все строки и их возможные совпадения.В большинстве случаев это работает хорошо, но я могу получить длинные цепочки совпадений, которые в конечном итоге должны быть идентифицированы как один и тот же человек, и вот где я застрял.
Моя примерная исходная таблица может выглядеть так:
systemid last_name
-------- ---------
13 Samison
14 Samsun
15 Sanison
Я использую stringdist_inner_join для last_name, чтобы получить таблицу, которая выглядит следующим образом:
systemid.x systemid.y
---------- ----------
13 15
14 13
15 13
но мне нужно знать, что все три из этих записей потенциально одинаковы,поэтому в конечном итоге я хочу что-то вроде этого:
finalid systemid.x systemid.y
------- ---------- ----------
13 13 15
13 14 13
13 15 13
Чтобы сделать это более сложным, число этих потенциальных дубликатов может быть любым числом, а цепочка отношений между ними может быть любой длины.У меня может быть идентификатор 13 соответствует 14, 14 соответствует 15, 15 соответствует 21 и т. Д.
Возможно также, что я все делаю неправильно, и мне нужно изучить что-то еще, например сравнение.dedup.