r - 按 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)
但我没有得到需要的结果
我怎样才能得到结果?
解决方案
你的预期输出是什么?
你可以使用它返回一个列表group_id
(我假设不仅仅是group_id=11
)。
lapply(split(mydata,mydata$group_id), function(x) table(x$id))
$`11`
123 124
2 2