在R的RecordLinkage包中使用RLBigData类时出现错误输出

问题描述 投票:1回答:1

使用R包时 RecordLinkage以下是一些产出 epiClassify()emClassify() 函数(可以在 RLBigDataLinkage类对象)会输出错误。当我使用为较小的数据比较而设计的函数时,这些错误是看不到的,例如 compare.linkage(). 描述这一点的文档可以在软件包vignettes中找到。此处.

我的总体目标是 "模糊匹配 "两张表之间的数据;一旦我知道基于其他变量的表之间有哪些行是相似的,我就可以使用索引从一张表中的列中抓取另一张表中缺少的唯一ID。

数据: 这是一些用于重现错误的虚拟数据... ...

library(tibble)
table1 <- tibble(col1 = c("JIMMY", "SARA", "AYIL", "JIM", "JOHN"),
                 col2 = c("OHEARN", "HANDLE", "HASE", "JHORN", ""),
                 col3 = c("jdt322", "jdb122", "", "ddd532", "ddd444"))

table2 <- tibble(col1 = c("JIMMY", "SARAH", "SARA",  "AYIL", "JIM", "JOHN", "timm"),
                 col2 = c("OHEARN", "HAND","H",  "HASE", "JORN", "", ""),
                 col3 = c("jdt322", "jda122", "jdb112", "", "ddd532", "ddd444", "ddd322"))

当我在函数中使用上述数据进行较小范围的比较时,它工作正常,没有错误。

mypairs <- RecordLinkage::compare.linkage(table1, table2, strcmp = T)
mypairs_weights <- emWeights(mypairs)
result <- emClassify(mypairs_weights, threshold.lower = 1)
getTable(result)
summary(result)
getPairs(result, min.weight = 1)

但是,当我使用 RLBigData 类(如下面的代码),当我试图访问对象时,我得到了错误。

  • 我试图访问对象 result 之后 emClassify(): 在nrow(object@pairs)中出错:"RLResult "类的这个对象没有名称 "pair "的槽。

  • 试图抓住摘要与 summary(result): 在dbGetQuery(object@con, "select count()from data1") : "RLBigDataLinkage "类的这个对象没有名字为 "con "的槽位*。

  • 试图抓住对比表与 getTable(result): table.ff(object@data@pairs$is_match, object@prediction, useNA = "ifany")中出错:当前只允许vmodes整数--你确定......只包含因子或整数?

  • 当第一次运行的时候,也会抛出警告。RLBigDataLinkage() 函数。警告信息:1: 在res_fetch(res@ptr, n = n) :不需要为语句调用dbFetch(),只需要为查询调用。

以下代码应该可以重现这些错误

mypairs <- RLBigDataLinkage(table1, table2,
                            strcmp = T,
                            strcmpfun = "jarowinkler")

mypairs_weights <- emWeights(mypairs)
result <- emClassify(mypairs_weights, 0.6)
result
getTable(result)
summary(result)
getPairs(result, min.weight = 0.5)

我不确定为什么在第二种情况下代码会吐出这些错误。我想先在一个小数据集上解决代码问题,然后再转向更大的数据集。如果有人能对这个包输出的这些错误和警告作出说明,我会非常感激。

r bigdata record-linkage
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.