Dopasuj wzór zliczania w R

Jak skutecznie policzyć liczbę wystąpień jednego ciągu znaków, które występują w innym ciągu znaków?

Poniżej jest mój dotychczasowy kod. Z powodzeniem identyfikuje, czy jakakolwiek instancja jednego ciągu występuje w drugim ciągu. Nie wiem jednak, jak rozszerzyć go z relacji PRAWDA / FAŁSZ na relację liczenia.

x <- ("Hello my name is Christopher. Some people call me Chris")
y <- ("Chris is an interesting person to be around")
z <- ("Because he plays sports and likes statistics")

lll <- tolower(list(x,y,z))
dict <- tolower(c("Chris", "Hell"))

mmm <- matrix(nrow=length(lll), ncol=length(dict), NA)

for (i in 1:length(lll)) {
for (j in 1:length(dict)) {
    mmm[i,j] <- sum(grepl(dict[j],lll[i]))
}
}
mmm

Daje:

       [,1] [,2]
 [1,]    1    1
 [2,]    1    0
 [3,]    0    0

Ponieważ małe litery „chris” pojawiają się dwa razy wlll[1] chciałbymmmm[1,1] mieć 2 zamiast 1.

Prawdziwym przykładem jest znacznie większy wymiar ... więc chciałbym, żeby kod był wektoryzowany, zamiast używać mojej brutalnej siły do ​​pętli.

questionAnswers(5)

yourAnswerToTheQuestion