1

所以我在 R 中遇到了一个小错误/功能,其中 agrep 函数不接受“|” 当在参数中使用时,字符作为有效的正则表达式逻辑(其他人也有这个问题)。

我正在尝试对一个字符向量 (ListofUniqueNames) 中的 30 个不同、相对唯一的名称与数据框列 (MasterList$Names) 中超过 380,000 个不同名称的列表进行模糊匹配,并获得所有匹配的名称。我能够通过使用 grep 完成精确匹配

grep(paste(ListofUniqueNames,collapse="|"),MasterList$Names, value=TRUE, ignore.case = TRUE)

但是,由于上面列出的问题,这种方法不适用于 agrep。我怎样才能完成同样的任务但使用模糊匹配?

4

1 回答 1

1

您可以agrep为每种模式一一调用,然后组合结果:

unlist(lapply(ListofUniqueNames, function(x) agrep(x, MasterList$Names, value=T, ignore.case = TRUE)))
于 2017-10-06T23:12:53.407 回答