1

对于我的研究,我必须匹配两个包含基金信息的数据集。不幸的是,没有通用标识符。好消息是我在两个文件中都有一个文件编号的标识符,但它可以包含多个资金。如果文件中有多个基金(例如 20 个),我只能通过基金名称进行匹配,有时可能略有不同。请注意,在任何数据集中,每个文档的基金数量是相同的。经过一番搜索后,我尝试使用此功能(在这里找到:agrep: only return best match(es)):

ClosestMatch2 = function(string, stringVector){

  distance = levenshteinSim(string, stringVector);
  stringVector[distance == max(distance)]

}

这对大多数基金来说都很好,但是我发现了两个问题:

  1. 有时有多个匹配项
  2. 有时我有错误的比赛

例如:此函数将“INSTITUTIONAL LARGE CORE FUND”匹配到“Transamerica Partners Institutional Core Bond”而不是“Transamerica Partners Institutional Large Core”。

我有两个想法来规避这些问题:

  1. 我使用另一个匹配函数来验证上面的函数。即,如果两个函数产生相同的结果,我只接受匹配。
  2. 我以某种方式调整了上面的功能。

我将衷心感谢您的帮助。最好的,劳伦兹

4

1 回答 1

0

RecordLinkage包允许您使用多种方法匹配字符串(例如,levenshtein 以及其他度量),它允许您定义阈值,甚至使用分类模型来指示您何时可以匹配。

于 2013-04-22T11:27:30.770 回答