计算数据帧中每行每个短语的单词频率

时间:2017-11-08 10:38:52

标签: r

我有一个这样的数据框:

DF <- data.frame(phrase = c("text 1","this text 2", "text 3"))

我想创建一个列,其中包含数据帧中每一行中存在的短语数。前面的例子分别是2,3,2

我试过的是这个

library(data.table)

dfN<- setDT(DF)[, c('phrase') :=tstrsplit(phrase, '(?<=[^0-9])', perl=TRUE, type.convert=TRUE)]

但我收到此错误

  

[.data.table(setDT(DF),,,:= =(c(“phrase”))出错,   tstrsplit(短语,:         内部逻辑错误。前期检查(在开始修改DT之前)没有捕获分配给因子的RHS('list')类型   列'短语'。请向datatable-help报告。       另外:警告信息:       在[.data.table(setDT(DF),,::=(c(“phrase”),tstrsplit(短语,:         提供了11个项目,分配给3个“短语”栏目(8个未使用)

1 个答案:

答案 0 :(得分:1)

我们可以使用str_count

library(stringr)
setDT(DF)[, newcol := str_count(phrase, "\\w+")]