描述
我有两个数据集,其中包含我需要合并的信息。我仅有的常见字段是不完全匹配的字符串和可能完全不同的数字字段
解释问题的唯一方法是向您显示数据。这是a.csv和b.csv。我正在尝试将B合并为A。
B中有三个字段,A中有四个字段。公司名称(仅文件A),基金名称,资产类别和资产。到目前为止,我的重点一直是尝试通过替换单词或字符串的一部分以创建完全匹配项,然后使用以下方法来匹配基金名称:
a <- read.table(file = "http://bertelsen.ca/R/a.csv",header=TRUE, sep=",", na.strings=F, strip.white=T, blank.lines.skip=F, stringsAsFactors=T)
b <- read.table(file = "http://bertelsen.ca/R/b.csv",header=TRUE, sep=",", na.strings=F, strip.white=T, blank.lines.skip=F, stringsAsFactors=T)
merge(a,b, by="Fund.Name")
但是,这只能使我达到30%的匹配率。剩下的我要手工做。
资产是一个数值字段,在任何一个字段中都不总是正确的,并且如果基金的资产较低,则可能会发生巨大变化。资产类别是一个字符串字段,在两个文件中“通常”是相同的,但是存在差异。
更为复杂的是文件B中的不同系列的资金。例如:
AGF加拿大价值
AGF加拿大价值-D
在这些情况下,我必须选择一个不保留的匹配项,或者选择一个称为“ A”,“-A”或“ Advisor”的匹配项。
题
您说什么是最好的方法?我必须每月进行一次锻炼,而手动进行匹配非常耗时。代码示例将起到辅助作用。
想法
我认为一种可行的方法是根据字符串中每个单词的第一个大写字母对字符串进行规范化。但是我还无法弄清楚如何使用R实现这一目标。
我考虑的另一种方法是根据资产,基金名称,资产类别和公司的组合创建匹配索引。但是同样,我不确定如何用R做到这一点。或者,即使有可能,也是如此。
代码示例,注释,思想和指导非常感谢!
慕后森