Мы могли бы создать вектор для поиска и использовать sapply
, чтобы найти, присутствует ли он в string
vals <- colSums(sapply(tags, function(x)
grepl(paste0("\\b",x, "\\b"), strings, ignore.case = TRUE)))
vals
#what when why
# 2 1 1
ignore.case
игнорирует регистр, поэтому "What"
и "what"
одинаковы.
Граница слова ("\\b"
) добавляется для каждого tag
, так что "what"
не совпадает с "whatever"
.
данные
strings <- c("What is your name", "When and why should you run for high speed",
"What is your father name ")
tags <- c("what", "when", "why")