2016-03-16 6 views
4

Я работаю с RecordLinkage библиотеки в R. У меня есть фрейм данных с идентификатором, имя, телефон, почтаR RecordLinkage Идентичность

Мой код выглядит следующим образом:

ids = data$id 
pairs = compare.dedup(data, identity=ids, blockfld=as.list(2,3,4)) 

Проблема заключается в том, что мои идентификаторы не совпадают в моем результате выхода так, если бы я имел эти данные:

id Name  Phone Mail 
233 Nathali 2222  [email protected] 
435 Nathali 2222 
553 Jean  3444  [email protected] 

в моем выходе результат у меня будет что-то вроде

id1 id2 
1 2 

Вместо

id1 id2 
233 435 

Я хочу знать, если есть способ, чтобы сохранить идентификаторы вместо индекса, или кто-то может объяснить мне параметр идентичности.

Благодаря

ответ

3

Вектор идентичности говорит метод getPairs который из входных записей принадлежат к одной и той же сущности. Он фактически содержит информацию, которую вы обычно хотите получить от записи связи, т. Е. У вас есть пара записей и не заранее знать, какие из них принадлежат друг другу. Однако, когда вы используете набор тренировок для калибровки метода или хотите оценить точность методов привязки записей (пакет был в основном написан для этой цели), вы начинаете с уже дедуплицированного или связанного набора данных.

В вашем примере первые две строки (идентификаторы 233, 435), очевидно, означают, что один и тот же человек и третий ряд другой. Поэтому смысл вектор идентичности будет:

c(1,1,2) 

Но это также может быть:

c(42,42,128) 

Просто убедитесь, что вектор идентичности имеет одинаковые значения именно в тех местах, где соответствующие строки таблиц занимают соответствующую запись (векторный индекс = индекс строки).

О ваш вопрос о том, как отобразить идентификаторы в результате: Вы можете получить полные пары записей, в том числе всех полей данных, с (смотрите документацию для получения более подробной информации):

getPairs(pairs) 

Там может быть лучшие способы получить исходные идентификаторы, в зависимости от того, как вы будете обрабатывать пар записи (например, запустить алгоритм классификации). Расширьте свой пример, если вам нужно больше советов по этому вопросу.

p.s .: Я являюсь одним из авторов пакета. Я только совсем недавно узнал, что люди задают вопросы о пакете в Stack Overflow, поэтому, пожалуйста, извините, что несколько вопросов были без ответа в течение долгого времени. Я буду искать способ получить уведомление по новым вопросам, размещенным здесь, но я также хотел бы упомянуть, что люди могут напрямую связаться с нами через один из адресов электронной почты, перечисленных в информации о пакете.