我有一个称为“数据”的字符向量,其中包含许多句子。我希望能计算出字典“ dic”中存在的所有“ data”句子中所有单词的百分比。
这两个循环可以完成工作,但是它们花费的时间太长。如何优化代码?
dic<-c("apples","grapes","bananas")
data<-c("apples are good for you","grapes and blueberries are violet" )
wordsin<-0
wordsnotin<-0
for (j in c(1:length(data))){
for (word in strsplit(data[j]," ")[[1]]){
if (word %in% dic){
wordsin<-wordsin+1
}
else{
wordsnotin<-wordsnotin+1
}}}
percentage<- (wordsin / wordsin + wordsnotin) * 100
期望输出:
我的词典中的-2个单词
总共-10个字
然后40%是预期的百分比。 ((2/10)* 100)
不需要循环。我很快将一些代码放在一起。您可以将文本挖掘工具用于此类任务。下面的示例使用tidytext和dplyr。