0

我有

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, 不适用

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

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

4

1 回答 1

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”)),它并没有涵盖所有内容,但它必须做。

于 2020-03-04T16:52:09.450 回答