Я следую прекрасному учебнику по RPubs , в котором используется великолепный пакет RecordLinkage. Я применяю это к своим собственным данным, но я просто воспользуюсь руководством, чтобы объяснить мою проблему.
В двух наборах данных для сравнения имеется ряд общих полей, используемых в связи:
patents <- patents[,c("seq", "firstname", "lastname", "city", "state", "organization")]
nsf <- nsf[, c("InvestigatorId", "FirstName", "LastName", "CityName", "StateCode", "Name")]
names(nsf) <- names(patents)
Затем эти поля сравниваются с помощью функции compare.linkage ():
a <- compare.linkage(nsf, patents, blockfld = c("state"), strcmp = T, exclude=c(1))
Это создает большой объект RecLinkData с именем 'a', который содержит несколько пар сравнения.
Следующим шагом является вычисление весов M и U (весов согласования) с использованием алгоритма максимизации ожидания (EM):
b <- emWeights(a, cutoff = 0.8)
Я думаю, что это в основном создает общий вес соглашения, который является продуктом всех отдельных переменных связывания.
Мой вопрос: как я могу добавить значение для одной из отдельных переменных связывания?
Так, например, я мог бы знать, что поле «фамилия» является надежным и точным в обоих наборах данных, поэтому, если фамилия была согласована точно, то это придало бы больший вес в общем балле согласия.
Даже некоторые указатели на то, где искать, были бы полезны, я немного заблудился в этом и даже не знаю, что предпринять в плане кода.