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.