Мы можем использовать strsplit
, чтобы разделить vector
на list
и использовать %in%
с all
, чтобы проверить, все ли элементы 's1', 's2', 's3' найдены в list
элемент и получить sum
sum(sapply(strsplit(M[,1], "\\s+"), function(x) all(c("s1", "s2", "s3") %in% x)))
#[1] 3
Другой вариант - извлечь значения из строки, отметьте lengths
равным 3 (при условии, что значения не дублируются в пределах строка)
library(stringr)
sum(lengths(str_extract_all(M, "s1|s2|s3")) == 3)
#[1] 3
данные
M <- structure(c("s1 s2 s3 ", "s2 s9 s1 s5 s6 s8 s3", "s4 s1 s7 s2",
"s2 s1 s3"), .Dim = c(4L, 1L))