Use grepl to search either of multiple substrings in a text [duplicate]

放肆的年华 提交于 2019-11-27 02:04:57

You could paste the genres together with an "or" | separator and run that through grepl as a single regular expression.

x <- c("Action", "Adventure", "Animation", ...)
grepl(paste(x, collapse = "|"), my_text)

Here's an example.

x <- c("Action", "Adventure", "Animation")
my_text <- c("This one has Animation.", "This has none.", "Here is Adventure.")
grepl(paste(x, collapse = "|"), my_text)
# [1]  TRUE FALSE  TRUE

You can cycle through a list or vector of genres, as below:

genres <- c("Action",...,"Western")
sapply(genres, function(x) grepl(x, my_text))

To answer your question, if you just want to know if any element of the result is TRUE you can use the any() function.

any(sapply(genres, function(x) grepl(x, my_text)))

Quite simply, if any element of is TRUE, any will return TRUE.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!