Contagem de correspondência de padrões em R

Como alguém poderia contar eficientemente o número de instâncias de uma cadeia de caracteres que ocorre dentro de outra cadeia de caracteres?

Abaixo está o meu código até hoje. Ele identifica com êxito se qualquer instância da cadeia ocorre na outra cadeia. No entanto, não sei como estendê-lo de um relacionamento TRUE / FALSE para um relacionamento de contagem.

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

Ela produz:

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

Como a seqüência de letras minúsculas "chris" aparece duas vezes nolll[1] eu gostariammm[1,1] ser 2 em vez de 1.

Um exemplo real é uma dimensão muito maior ... assim, adoraríamos se o código pudesse ser vetorizado em vez de usar minha força bruta para fazer loops.

questionAnswers(5)

yourAnswerToTheQuestion