【问题标题】:Count the word frequency of every phrase per row in dataframe计算数据框中每行每个短语的词频
【发布时间】:2017-11-08 10:38:52
【问题描述】:

我有一个这样的数据框:

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 类型(“列表”) “短语”列。请向数据表帮助报告。 另外:警告信息: 在 [.data.table(setDT(DF), , :=(c("phrase"), tstrsplit(phrase, : 提供 11 项分配给列“短语”的 3 项(8 项未使用)

【问题讨论】:

  • 你有几列通过拆分和你分配给一个列,即短语'
  • @akrun 谢谢。我可以为此做些什么?
  • 输出不清楚。如果要字数,那么setDT(DF)[, newcol := str_count(phrase, "\\w+")]
  • @akrun 谢谢你,这就是答案。

标签: r


【解决方案1】:

我们可以使用str_count

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2021-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多