我一直在使用的grep函数似乎没有正常工作,我无法弄清楚为什么?

时间:2018-05-05 19:00:11

标签: r

我有两个相当大的数据框,我想彼此匹配。我自己的数据框(公司)由我出口到谷歌文档的1812家公司组成,因此您可以轻松查看所有这些公司:

Spreadsheet

我拥有的其他数据框(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将此名称检索为匹配?

我已经多次测试了这个样本,并且每次看起来都没有问题,但是当我使用我实际的大样本时,我似乎从不知道这些无关的匹配。

对不起,我无法提供任何示例,但似乎每当我使用更小的样本时,它都能正常工作。

0 个答案:

没有答案