R: простое обнаружение ключевых слов

Я хочу проверить, отображается ли любое из набора "ключевых слов" в строке. Таким образом, для «текст» ниже результат должен быть ИСТИНА (или 1), а для text_2 - ЛОЖЬ (или 0).

keywords <- c("one", "two", "three", "four") #set of keywords
text <- "Blah blah one blah two" 
text_2 <- "Blah blah" 

Я пробовал несколько вариантов str_detect, но застрял.

Так, например, я знаю, что использую эту функцию неправильно, но:

> keywords <- c("motor", "car", "ford") #list of keywords
> text <- "I am looking to buy a ford" #string I'd like to check
> ifelse(str_detect(text, pattern = keywords), 1, 0)
[1] 0 0 1

Есть ли лучший подход?


person wimlouw    schedule 02.08.2017    source источник


Ответы (1)


Попробуй это...

any(sapply(keywords,grepl,text))
[1] TRUE

any(sapply(keywords,grepl,text_2))
[1] FALSE
person Andrew Gustar    schedule 02.08.2017