【问题标题】:How to get matching pairs with R's RecordLinkage package如何使用 R 的 RecordLinkage 包获得匹配对
【发布时间】:2011-09-03 12:11:05
【问题描述】:

谁能告诉我我在这里做错了什么。我正在尝试在玩具数据集上测试 R 包 RecordLinkage 的比较功能

> 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。

【问题讨论】:

  • 将在原始数据中指定“is_match”以显示一对实际匹配。 “RecordLinkage”包主要用于测试链接算法,此列允许在基准数据上评估算法。
  • 谢谢理查德 - 我现在明白了。 - 但是,例如,如果我输入 head(RLdata500) 我看不到标识列 - 它在哪里?
  • 对于任何像我一样偶然发现这个问题的人:在 R 中输入“help(RLdata500)”。它解释了 identity.RLdata500 是一个单独定义的向量,它包含唯一的 ID。

标签: r record-linkage


【解决方案1】:

因为你忘了使用身份索引:

> 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

【讨论】:

  • 但是 identitly 是可选的 - 而且你的例子仍然没有表明记录 1 和 3 是匹配的
  • 别担心 - 我已经解决了 - 身份是用于监督训练的
  • @RossFarrelly 你是怎么解决这个问题的?我有同样的问题...is_match 只会导致NAs
  • 有没有人设法解决这个问题?我有同样的问题,is_match 列都显示 NA
【解决方案2】:

对于任何像我一样偶然发现这个问题的人:输入

help(RLdata500)

在 R 中。它解释了 identity.RLdata500 是一个单独定义的向量,它包含唯一的 ID。

我认为,它是单独定义的,否则,某些函数将自动使用数据,除非明确告知它们不要这样做...

要查看哪些行是重复的,请在 R 中键入以下内容:

i=cbind(RLdata500,identity.RLdata500)
L = i[8] == 33
i[L,]

【讨论】:

  • 请注意,我是 R 的初学者 - 所以可能有一种更优雅的方式来显示重复的数据记录。 (如果有人知道一种方法,可以显示组合矩阵“i”的这一行,我想听听。)
【解决方案3】:

我遇到了同样的问题,我有这个答案的可能解决方案这是由于身份参数。

从样本数据中,在Record Linkage包中,我发现这个向量identity.RLdata500携带了500条记录中RLdata500重复记录的信息,其中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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 1970-01-01
    相关资源
    最近更新 更多