Проблема с пакетом R RecordLinkage - PullRequest
2 голосов
/ 03 сентября 2011

Может кто-нибудь сказать мне, что я здесь делаю не так. Я пытаюсь проверить функцию сравнения RecordLinkage пакета R на наборе игрушечных данных

> test<-cbind(
+ a = c(1, 1, 1), 
+ b = c(2, 0, 2), 
+ c = c(1, 2, 1))
> 
> test
     a b c
[1,] 1 2 1
[2,] 1 0 2
[3,] 1 2 1
> 
> results <- compare.dedup(test)
> 
> results$pairs
  id1 id2 a b c is_match
1   1   2 1 0 0       NA
2   1   3 1 1 1       NA
3   2   3 1 0 0       NA
> 

Записи 1 и 3 явно совпадают, но is_match равно NA для всех трех пар.

Спасибо

Ответы [ 3 ]

1 голос
/ 03 сентября 2011

потому что вы забыли использовать идентификационный индекс:

> compare.dedup(cbind(a=c(1,1,1), b=c(2,0,2), c=c(1,2,1)), identity=c(1,2,3))$pair
id1 id2 a b c is_match
1   1   2 1 0 0        0
2   1   3 1 1 1        0
3   2   3 1 0 0        0
0 голосов
/ 24 октября 2017

Я столкнулся с той же проблемой, и у меня есть возможное решение для этого ответа. Это связано с параметром идентификации.

из примеров данных, в пакете Record Linkage, я обнаружил, что этот вектор identity.RLdata500 несет информациюо повторяющихся записях RLdata500 из 500 записей 50 являются повторяющимися записями

length(unique(identity.RLdata500))
[1] 450

Я нашел аналогичный столбец в своем наборе данных и сохранил его как отдельный вектор и передал вектор параметру идентификации

New_data_seq
118
118

New_data_seq <- R_New_data_zero$SEQ_NO 
abc <- compare.dedup (R_New_data_zero,identity = New_data_seq) 

BICODE ALCODE IS_T OID conc
 I      A     1    99   IA1
 I      A     1    99   IA1
abc$pairs[1:1, ]

id1 id2 BICODE ALCODE IS_T OID conc is_match
 1   2   1        1    1    1    1       1
0 голосов
/ 24 сентября 2017

Для тех, кто сталкивается с таким вопросом, как я: введите

help(RLdata500)

в R. Это объясняет, что identity.RLdata500 - это отдельно определенный вектор, который содержит уникальные идентификаторы.

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

Чтобы увидеть, какие строки являются дубликатами, введите в R следующую команду:

i=cbind(RLdata500,identity.RLdata500)
L = i[8] == 33
i[L,]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...