对于我的研究,我必须匹配两个包含基金信息的数据集。不幸的是,没有通用标识符。好消息是我在两个文件中都有一个文件编号的标识符,但它可以包含多个资金。如果文件中有多个基金(例如 20 个),我只能通过基金名称进行匹配,有时可能略有不同。请注意,在任何数据集中,每个文档的基金数量是相同的。经过一番搜索后,我尝试使用此功能(在这里找到:agrep: only return best match(es)):
ClosestMatch2 = function(string, stringVector){
distance = levenshteinSim(string, stringVector);
stringVector[distance == max(distance)]
}
这对大多数基金来说都很好,但是我发现了两个问题:
- 有时有多个匹配项
- 有时我有错误的比赛
例如:此函数将“INSTITUTIONAL LARGE CORE FUND”匹配到“Transamerica Partners Institutional Core Bond”而不是“Transamerica Partners Institutional Large Core”。
我有两个想法来规避这些问题:
- 我使用另一个匹配函数来验证上面的函数。即,如果两个函数产生相同的结果,我只接受匹配。
- 我以某种方式调整了上面的功能。
我将衷心感谢您的帮助。最好的,劳伦兹