R中的记录链接包-为单个链接变量添加权重

R中的记录链接包-为单个链接变量添加权重,r,linkage,record-linkage,R,Linkage,Record Linkage,我正在遵循使用华丽的RecordLink软件包的优秀教程。我将这一点应用到我自己的数据中,但我将仅使用教程来解释我的问题 在用于比较的两个数据集中,链接中使用了许多公共字段: patents <- patents[,c("seq", "firstname", "lastname", "city", "state", "organization")] nsf <- nsf[, c("InvestigatorId", "FirstName", "LastName", "CityName

我正在遵循使用华丽的RecordLink软件包的优秀教程。我将这一点应用到我自己的数据中,但我将仅使用教程来解释我的问题

在用于比较的两个数据集中,链接中使用了许多公共字段:

patents <- patents[,c("seq", "firstname", "lastname", "city", "state", "organization")]

nsf <- nsf[, c("InvestigatorId", "FirstName", "LastName", "CityName", "StateCode", "Name")]

names(nsf) <- names(patents) 

patents您不能向
emWeights()
输入其他信息,除非
cutoff=
,它接受与属性数相同长度的单个值或向量。因此,您可以为已知准确的属性选择一个较高的
截止值
,这样随机匹配的数量将最小化

除此之外,RecordLink中的EM算法不允许进一步定制

但是,有一个
epiWeights()
挂件,它使用估计的错误率(默认值
e=0.01
)和每个字段中值的平均频率
(1/长度(唯一(所有值都在\u a\u字段中))计算
0
1
之间的权重
。您可以手动向函数提供,也可以通过这种方式调整结果

考虑这个例子:

t1 <- data.frame(Vorname = c("Karl", "Fritz"), Name = c("Meister", "Schulz"), stringsAsFactors = F)

t2 <- data.frame(Vorname = c("Karl", "Fritz"), Name = c("Meister", "Schulze"), stringsAsFactors = F)

> epiWeights(linkage)$Wdata  # e = 0.01
[1] 1.0000000 0.0000000 0.0000000 0.3855691

> epiWeights(linkage, e = c(0.01, 0.3)$Wdata  
[1] 1.0000000 0.0000000 0.0000000 0.3120078

t1体重指数(联动,e=c(0.01,0.3)$Wdata
[1] 1.0000000 0.0000000 0.0000000 0.3120078

如果假设字段
Nachname的错误率较高,则权重会较低。

您无法向
emWeights()输入其他信息
,除了可能的
截止=
,它接受单个值或与属性数相同长度的向量。因此,您可以为已知准确的属性选择一个高的
截止
值,以便将随机匹配数降至最低

除此之外,RecordLink中的EM算法不允许进一步定制

但是,有一个
epiWeights()
挂件,它使用估计的错误率(默认值
e=0.01
)和每个字段中值的平均频率
(1/长度(唯一(所有值都在\u a\u字段中))计算
0
1
之间的权重
。您可以手动向函数提供,也可以通过这种方式调整结果

考虑这个例子:

t1 <- data.frame(Vorname = c("Karl", "Fritz"), Name = c("Meister", "Schulz"), stringsAsFactors = F)

t2 <- data.frame(Vorname = c("Karl", "Fritz"), Name = c("Meister", "Schulze"), stringsAsFactors = F)

> epiWeights(linkage)$Wdata  # e = 0.01
[1] 1.0000000 0.0000000 0.0000000 0.3855691

> epiWeights(linkage, e = c(0.01, 0.3)$Wdata  
[1] 1.0000000 0.0000000 0.0000000 0.3120078

t1体重指数(联动,e=c(0.01,0.3)$Wdata
[1] 1.0000000 0.0000000 0.0000000 0.3120078
如果假设字段
Nachname
的错误率较高,则权重较低

t1 <- data.frame(Vorname = c("Karl", "Fritz"), Name = c("Meister", "Schulz"), stringsAsFactors = F)

t2 <- data.frame(Vorname = c("Karl", "Fritz"), Name = c("Meister", "Schulze"), stringsAsFactors = F)

> epiWeights(linkage)$Wdata  # e = 0.01
[1] 1.0000000 0.0000000 0.0000000 0.3855691

> epiWeights(linkage, e = c(0.01, 0.3)$Wdata  
[1] 1.0000000 0.0000000 0.0000000 0.3120078