如何有效地计算在另一个字符串中出现的一个字符串的实例数?
以下是我迄今为止的代码.它成功识别是否在另一个字符串中出现了一个字符串的任何实例.但是,我不知道如何将它从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]中出现两次,我希望mmm [1,1]为2而不是1.
真实的例子是更高的维度……所以如果代码可以被矢量化而不是使用我的强力循环,那就太喜欢了.