我使用下面的代码来计算给定句子中单词的出现次数
wordCount = function(sentence,word){
splitedVectorString <- c()
splitedVectorString <- strsplit(sentence," ")
count <- 0
for (j in splitedVectorString) {
print(length(splitedVectorString))
print(splitedVectorString)
print(word)
if (identical(word,j)) {
count <- count + 1
print(count)
}
}
}
程序运行成功,但我的计数为0.我在控制台上调用此函数
wordCount("This is XYZ and is running late","is")
当我打印分裂的矢量splitedVectorString
的长度时,它给了我1.我在分裂句子时遇到了问题吗?
我完全不知道什么是错的。我刚开始学习R编程
答案 0 :(得分:1)
您可以做的是:
wordCount = function(sentence,word){
splitedVectorString <- unlist(strsplit(sentence," "))
count <- sum(word == splitedVectorString)
count
}
你取消了strsplit的结果,以便你有一个向量(strsplit返回一个列表,这就是你获得长度为1的原因!)和你句子中的所有单词,然后你总结所有等于你的值字。
表达式word == splitedVectorString
将返回与splitedVectorString长度相同的向量,其值为True和False,具体取决于向量的特定元素是否与单词相同。
> wordCount("This is XYZ and is running late","is")
[1] 2