我有三个字符串,其中包含what,when,why,如下所示
有没有办法列出包含给定模式的所有字符串。
首先我检测出该模式,然后计算出True值的数量
e<-str_detect(c, "What")
length(e[e == TRUE])
我希望输出方式
Number of string contain What: 02
Number of String contain when : 01
Number of String contain why : 01
答案 0 :(得分:2)
我们可以创建一个向量来搜索并使用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")