Счетчик совпадений в R

Как эффективно подсчитать количество экземпляров одной символьной строки, которые встречаются в другой символьной строке?

Ниже мой код на сегодняшний день. Он успешно идентифицирует, встречается ли какой-либо экземпляр одной строки в другой строке. Однако я не знаю, как расширить его от отношения ИСТИНА / ЛОЖЬ до отношения подсчета.

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

Это дает:

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

Поскольку строчная строка "chris" появляется дважды вlll[1] Я хотел быmmm[1,1] быть 2 вместо 1.

Реальный пример - гораздо более высокое измерение ... так что хотелось бы, чтобы код можно было векторизовать вместо использования моей грубой силы для циклов.

Ответы на вопрос(5)

Ваш ответ на вопрос