如何解决R中agrep函数正则表达式逻辑中的错误?

时间:2017-10-06 22:58:09

标签: r regex fuzzy-search agrep

所以我在R中遇到了一个小错误/功能,其中agrep函数不接受“|”在参数中使用时,字符作为有效的正则表达式逻辑(others have had this problem too)。

我正在尝试在一个字符向量(ListofUniqueNames)中对30个不同的,相对唯一的名称进行模糊匹配,对应于数据框列(MasterList $ Names)中超过380,000个不同名称的列表,并获得输出所有匹配的名称。使用grep via

,我能够完成精确匹配
grep(paste(ListofUniqueNames,collapse="|"),MasterList$Names, value=TRUE, ignore.case = TRUE)

但是,由于上面列出的问题,这种方法不适用于agrep。如何通过模糊匹配完成同样的任务?

1 个答案:

答案 0 :(得分:1)

您可以为每个模式逐个调用agrep, 然后结合结果:

unlist(lapply(ListofUniqueNames, function(x) agrep(x, MasterList$Names, value=T, ignore.case = TRUE)))