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