如何有效地计算一个字符串在另一个字符串中出现的实例数?
以下是我迄今为止的代码。它成功地识别一个字符串的任何实例是否出现在另一个字符串中。但是,我不知道如何将它从 TRUE/FALSE 关系扩展到计数关系。
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]
I would like mmm[1,1]
to be 2 而不是 1 中出现了两次。
真实的例子是更高的维度......所以如果代码可以被矢量化而不是使用我的蛮力循环,我会很高兴。