我正在使用R中的RecordLinkage Library。 我有一个ID,名称,电话,邮件的数据框
我的代码如下所示:
ids = data$id
pairs = compare.dedup(data, identity=ids, blockfld=as.list(2,3,4))
问题是我的结果输出中的id不同 所以,如果我有这些数据:
id Name Phone Mail
233 Nathali 2222 nathali@dd.com
435 Nathali 2222
553 Jean 3444 jean@dd.com
在我的结果输出中,我将有类似
的内容id1 id2
1 2
而不是
id1 id2
233 435
我想知道是否有办法保留id而不是索引,或者有人可以解释我的身份参数。
由于
答案 0 :(得分:4)
标识向量告诉getPairs方法哪个输入记录属于同一个实体。它实际上包含您通常希望从记录链接获得的信息,即您有几个记录并且不事先知道哪些记录属于一起。但是,当您使用训练集来校准方法或者您想要评估记录链接方法的准确性时(该包主要是为此目的而编写的),您可以从已经重复数据删除或链接的数据集开始。
在您的示例中,前两行(ID 233,435)显然表示同一个人,第三行表示不同的行。因此,有意义的身份向量将是:
c(1,1,2)
但它也可能是:
c(42,42,128)
确保标识向量在相应表行保存匹配记录(向量索引=行索引)的位置处具有完全相同的值。
关于如何在结果中显示ID的问题:您可以获得完整的记录对,包括所有数据字段,(有关详细信息,请参阅文档):
getPairs(pairs)
根据您进一步处理记录对的方式(例如运行分类算法),可能有更好的方法来获取原始ID。如果您需要更多建议,请扩展您的示例。
p.s:我是包裹作者之一。我最近才意识到人们会对Stack Overflow上的软件包提出问题,所以请原谅很长一段时间没有回答过几个问题。我将寻找一种方式来获得有关此处发布的新问题的通知,但我还想提一下,人们可以通过包信息中列出的电子邮件地址直接与我们联系。
答案 1 :(得分:0)
您必须用标识列替换索引列。