R部分字符串匹配

时间:2020-03-04 12:28:30

标签: r matching string-matching partial partial-matches

我有

x <- c("DOL3", "AnnA", "CAT5", "Johna", "543QLARA", "Poro")
y <- c("3QLAR", "DOL5", "CAT5", "ANNA", "John", "Sam")

我想要一个函数,以便提供如下匹配项:

my_function(x, y)

[1] 1,2,3,4,5,NA

详细信息:我需要找到部分相同的字符串,它们以相同的开头或结尾,或者中间有一些相同的字母(例如,默认值为3个连续的匹配字母)。无论是否使用大写字母,我还需要该函数进行匹配。最后,我需要该函数在x到y的所有元素之间搜索每个元素的匹配项,而不是这些元素的一对一比较。

如果有人熟悉解决此问题的方法,请提供帮助。 谢谢。

1 个答案:

答案 0 :(得分:0)

我想找到答案了。

my_function_2 <- function(x, y) {
    for (i in 1:length(x)) {
     print(which(grepl(substring(x[i],1 ,3 ), y, ignore.case = TRUE)))
    }
}

它不是很优雅(x必须包含较小的用语(即“ 3QLAR”而不是“ 543QLARA”)),并且不能涵盖必须要做的所有事情。

相关问题