Как перечислить строку, содержащую данный шаблон? - PullRequest
1 голос
/ 22 мая 2019

У меня есть три строки, которые содержат то, что, когда, почему, как указано ниже

  1. Как тебя зовут
  2. Когда и почему вы должны бежать на высокой скорости
  3. Как зовут вашего отца

Есть ли способ перечислить все строки, которые содержат данный шаблон.

Сначала я обнаружил образец, а затем посчитал количество истинных значений

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

1 Ответ

3 голосов
/ 22 мая 2019

Мы могли бы создать вектор для поиска и использовать 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")
...