所以我在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。如何通过模糊匹配完成同样的任务?
答案 0 :(得分:1)
您可以为每个模式逐个调用agrep
,
然后结合结果:
unlist(lapply(ListofUniqueNames, function(x) agrep(x, MasterList$Names, value=T, ignore.case = TRUE)))