Вы можете использовать sapply
.Без примера я думаю, что-то вроде этого должно работать.Я проверю пример через секунду.
df$Is_Matched <- sapply(df$Name2, function(x) any(grepl(x, df$Name1))
РЕДАКТИРОВАТЬ:
Помогло создание примера кадра данных.sapply
экспортировал матрицу с каждым словом в Name2
, имеющим свой собственный столбец.Таким образом, вы можете проверить, содержит ли строка строку true, используя rowSums (true = 1, false = 0).Дайте мне знать, если у вас есть какие-либо проблемы с этим.
> df <- data.frame(
+ Name1 = c("Acadian Hospitals", "Bridgewater Trust Associates",
+ "Concordia Consulting", "Wellington Corporation LLC",
+ "Wellington Wealth Management", "Prime Acadian Charity"),
+ Name2 = c("Wellington", "Zeus", "Acadian", NA, NA, NA),
+ stringsAsFactors = FALSE
+ )
>
> match_me <- na.omit(df$Name2)
> df$Is_Matched <- rowSums(sapply(match_me, function(x) grepl(x, df$Name1))) > 0
> df
Name1 Name2 Is_Matched
1 Acadian Hospitals Wellington TRUE
2 Bridgewater Trust Associates Zeus FALSE
3 Concordia Consulting Acadian FALSE
4 Wellington Corporation LLC <NA> TRUE
5 Wellington Wealth Management <NA> TRUE
6 Prime Acadian Charity <NA> TRUE