计算单词在每行中出现并存储在新列(dplyr)中的次数

时间:2018-09-25 09:31:08

标签: r dplyr text-mining word-frequency qdap

我有一个字符向量,基本上包含单词的各个段落。我想计算一个特定单词在每行中分别出现的次数,然后创建一个新的向量来保存该数字。如何使用dplyr实现这一目标? (也可以使用其他任何方法)。

我最接近解决方案的地方是此链接:Count number of times a word appears (dplyr),但它并没有完全满足我的需求。

1 个答案:

答案 0 :(得分:0)

您可以按段落的分隔符对段落进行分割,然后对条件检查求和:

df <- structure(list(words = c("CDjointdisease state glasses CDdiabetes eyesight", 
                               "accidents_combined docvisits4w citysize CDliverdisease CDosteoporosis"
)), .Names = c("words"), row.names = 1:2, class = "data.frame")


> df
                                                                      words
1                          CDjointdisease state glasses CDdiabetes eyesight
2     accidents_combined docvisits4w citysize CDliverdisease CDosteoporosis

df$count <- sapply(strsplit(df$words, " "), function(x){
  sum(x == "eyesight")
})

> df
                                                                      words count
1                          CDjointdisease state glasses CDdiabetes eyesight     1
2     accidents_combined docvisits4w citysize CDliverdisease CDosteoporosis     0