我有两个相当大的数据框,我想彼此匹配。我自己的数据框(公司)由我出口到谷歌文档的1812家公司组成,因此您可以轻松查看所有这些公司:
我拥有的其他数据框(Master_list)非常庞大,有几百万次观察,所以我不能不幸地表明这一点,但它基本上由许多其他公司组成。我想要的是根据我的数据框“公司”中的公司名称检索“Master_list”中的公司名称。
这些公司名称的拼写在两个数据框架之间略有不同。因此,大多数字符串都不可能完全匹配。
这是我数据框的结构:
> str(Companies)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 1812 obs. of 1 variable:
$ Companies_Generated: chr "TOPSOE FUEL CELL" "HALDOR TOPSØE" "DKFZ DEUTSCHES KREBSFORSCHUNGSZENTRUM" "NIL TECHNOLOGY" ...
我用来实现匹配的功能是:
Matches.grep <- unique (grep(paste(Companies$Companies_Generated,collapse="|"),
Master_list$Names, value=TRUE))
这需要appo。执行2.5-3个小时,似乎可以检索出数千个奇怪的观察结果。
例如,R在Matches.grep中检索名称“PIENA INC”,这些单词都没有出现在我的“公司”数据框中,所以我不知道是什么让R将此名称检索为匹配?
我已经多次测试了这个样本,并且每次看起来都没有问题,但是当我使用我实际的大样本时,我似乎从不知道这些无关的匹配。
对不起,我无法提供任何示例,但似乎每当我使用更小的样本时,它都能正常工作。