计算字频率

时间:2016-12-21 10:12:37

标签: r

我使用下面的代码来计算给定句子中单词的出现次数

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编程

1 个答案:

答案 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