У меня проблема с частичным совпадением строк.У меня есть пары людей, и мне нужно сравнить их имена.Для этого я запустил charmatch в обоих направлениях для двух фамилий, чтобы увидеть, является ли name1 частью name2, и наоборот.У меня есть небольшой набор данных ниже, чтобы продемонстрировать вопрос.Я использую charmatch ниже;Я также использовал pmatch, и он возвращает тот же результат.
Когда charmatch говорит ищет совпадения для поиска совпадений для элементов своего первого аргумента среди элементов его второго ... Я понимаю, что это означает, что он будет обрабатывать каждую группу символов в element1как образец n, посмотрите, существует ли такая же группа в element2.Но это, очевидно, не то, что происходит, похоже, что это специфическое направление.
Так ... это специфическое направление?И если так ... что еще я могу использовать, чтобы сделать то, что я описываю?Мой EG имена каламбур предполагал, что я действительно сталкиваюсь с множеством фамилий, где у мужа есть его имя, а у жены есть ее + муж.Мне нужно знать, существует ли фамилия мужа в фамилии жены.
Я знаю, что это можно сделать с помощью регулярных выражений, но я не знаком с ними, возможно, так и должно быть, но я не знаком,Я бы предпочел ответ, который не использует регулярные выражения.
eg_data <- data.frame(name1 = c('Jimmy Conway', 'Jimmy'),
name2 = c('Conway','Jimmy Conway'))
eg_data$share_name1 <- mapply(charmatch, eg_data$name1, eg_data$name2)
eg_data$share_name2 <- mapply(charmatch, eg_data$name2, eg_data$name1)
eg_data$share_name <- 0
eg_data$share_name [(eg_data$share_name1==1 | eg_data$share_name2==1)]
<- 1