Возможный подход:
stringr::str_count(df, "MM+")
#output
[1] 4
+
означает один или несколько
в базе R:
lengths(gregexpr("MM+", df))
gregexpr
возвращает список,каждый элемент соответствует одному элементу df
.lengths
возвращает длину каждого элемента списка.
РЕДАКТИРОВАТЬ: согласно комментарию @docendo discimus второй параметр немного опасен, так как он вернет 1
, если строка не была найдена.
lengths(gregexpr("xyz+", df))
#output
1
Более безопасный вариант:
lapply(gregexpr("MM+", df), function(x) length(x[x > 0]))
#output
[[1]]
[1] 4
lapply(gregexpr("xyz+", df), function(x) length(x[x > 0]))
#output
[[1]]
[1] 0