首页 > 解决方案 > 按 R 中的组按文本计数聚合

问题描述

mydata=structure(list(id = c(123L, 123L, 124L, 124L), text = structure(c(3L, 
4L, 2L, 1L), .Label = c("bad", "good", "I love u", "u bad"), class = "factor"), 
    group_id = c(11L, 11L, 11L, 11L)), class = "data.frame", row.names = c(NA, 
-4L))

我想计算每个组中每个 id 有多少文本。例如。group_id=11 中的 id=123 只有 2 个文本短语,group_id=11 中的 id=123 也只有 2 个文本短语。所以作为我想要的输出

id  text    group_id
123  2        11
124  2        11

我用q=aggregate(data$text, by=list(Category=data$group_id), FUN=sum)

但我没有得到需要的结果

我怎样才能得到结果?

标签: rdplyr

解决方案


你的预期输出是什么?

你可以使用它返回一个列表group_id(我假设不仅仅是group_id=11)。

lapply(split(mydata,mydata$group_id), function(x) table(x$id))

$`11`

123 124 
  2   2

推荐阅读