R经验-grepl():检查字符串中是否存在多个特定字符?
检查my_str字符串中是否存在多个特定关键词key_words
my_str <- "What do you have for lunch?"
key_words <- c("do", "for", "is")
方式1:检查每个关键词是否存在
> sapply(key_words, grepl, my_str)
# 运行结果
do for is
TRUE TRUE FALSE
方式2:检查所有关键词是否存在
> sapply(key_words, grepl, my_str) |> all()
# 运行结果
[1] FALSE
方式3:检查部分关键词是否存在
> sapply(key_words, grepl, my_str) |> any()
# 运行结果
[1] TRUE
或使用正则匹配:
> grepl("do|for|is",my_str)
# 运行结果
[1] TRUE
使用stringr包
检查每个关键词是否存在
> library(stringr)
> str_detect(my_str, key_words)
# 运行结果
[1] TRUE TRUE FALSE
在my_str中匹配每个字符的位置(开始,结束)
> str_locate(my_str, key_words)
# 运行结果
start end
[1,] 6 7
[2,] 18 20
[3,] NA NA