我对一般的数据链接,尤其是R RecordLinkage包相对陌生。我有如下数据:
require(RecordLinkage)
library(RCurl)
dss_member <- read.csv(text = getURL("https://raw.githubusercontent.com/kilimba/data/master/dss_member.csv"),
stringsAsFactors = F)
dss_member$id <- NULL
patient <- read.csv(text = getURL("https://raw.githubusercontent.com/kilimba/data/master/patient.csv"),
stringsAsFactors = F)
patient$id <- NULL
rpairs <- compare.linkage(patient,dss_member)
rpairs$pairs
rpairs <- epiWeights(rpairs)
summary(rpairs)
如您所见,我有两个数据帧,dss_member
(11行)和patient
(5行)。用户James Earl Jones说,我在两者中都插入了一行,理论上应该绝对是一个链接。然而,我有两个担忧。
行
rpairs$pairs
导致输出,其中最后一列is_match
始终显示为NA,尽管我确信两个数据集中至少有一行相同。这是什么意思?这与另一个SO问题有关,该问题尚待回答。线路
rpairs <- epiWeights(rpairs)
summary(rpairs)
给出如下结果:
Linkage Data Set
5 records in data set 1
11 records in data set 2
55 record pairs
0 matches
0 non-matches
55 pairs with unknown status
Weight distribution:
[0,0.2] (0.2,0.4] (0.4,0.6] (0.6,0.8] (0.8,1]
47 1 3 2 2
(a) 为什么它显示0场比赛和0场非比赛,而至少在比赛中肯定有(James Earl Jones)
(b) 函数compare.linkage()
中的identity
参数是可选的吗?如果是这样的话,当你把它放在外面和放进去时会发生什么?
(c) 即使没有"金标准"也可以使用此包来执行记录链接,并且不能记录链接评估吗?
谨致问候,图迈尼
图迈尼,
您需要区分真实状态(假或真)和分类(非链接、可能或链接)。请参阅作者在《R Journal 2/2》(2010)上的文章、软件包手册以及作者在此处的回复:R RecordLinkage Identity。
直接回答您的问题:
(a) 输出显示"0匹配"one_answers"0不匹配",因为您在compare.linkage().中省略了identity1和identity2参数
(b) 是的,compare.linkage()中的identity1和identity2参数是可选的。如果省略了标识参数,则会忽略真正的匹配状态。如果您正确地指定了标识参数,那么将使用真正的匹配状态。
(c) 我不知道你所说的"记录链接"one_answers"记录链接评估"是什么意思。记录链接可以理解为一个以比较模式为输入、以匹配状态为输出的分类问题。
以下是您可能想要尝试的四步解决方案:
1) 在不带标识参数的情况下运行compare.linking。
2) 从记录对中创建两个标识变量。
3) 将两个身份变量转换为身份向量。
4) 再次运行compare.linkage,但使用标识参数运行。
安德斯·亚历山大andersalex@gmail.com