R-частичные совпадения строк - PullRequest
0 голосов
/ 04 марта 2020

У меня есть

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: 1.

Если кто-то знаком с способом подойти к этому пожалуйста помоги. Спасибо.

1 Ответ

0 голосов
/ 04 марта 2020

Я думаю, что я нашел ответ.

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")) и не охватывает все, НО это придется сделать.

...