Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按R中各组的文本计数进行聚合_R_Dplyr - Fatal编程技术网

按R中各组的文本计数进行聚合

按R中各组的文本计数进行聚合,r,dplyr,R,Dplyr,我想数一数每组中每个id有多少文本。 例如对于组_id=11中的id=123,只有两个文本短语, 对于组_id=11中的id=123,也只有2个文本短语。 所以作为我想要的输出 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"),

我想数一数每组中每个id有多少文本。 例如对于组_id=11中的id=123,只有两个文本短语, 对于组_id=11中的id=123,也只有2个文本短语。 所以作为我想要的输出

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))
我使用
q=aggregate(data$text,by=list(Category=data$group\u id),FUN=sum)

但我没有得到需要的结果


如何获得结果?

您的预期输出是什么

您可以使用它返回一个按
group\u id
列出的列表(我假设不止
group\u id=11


你的预期产出是多少

您可以使用它返回一个按
group\u id
列出的列表(我假设不止
group\u id=11


不太确定您想要什么:

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

$`11`

123 124 
  2   2

是这样吗?

不太确定您想要什么:

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

$`11`

123 124 
  2   2

是这样吗?

您只是在查找
表(mydata$id,mydata$group\u id)
?您使用了
dplyr
标记,所以可能是这个
库(dplyr);mydata%%>%group\U by(id,group\U id)%%>%摘要(text=n\u distinct(text))
?(如果您需要distinct)。@s\t更简单的方法可能是:
mydata%>%count(id,group\u id)
@Ali nice,如果不需要distinct,我建议您使用它。OP没有说明它(两者都不清楚),所以我认为这两种解决方案都可以使用。@s\t,一个问题,假设id=123有10行,但只有2行有文本。8行是空的。但我如何不仅总结文本行,还要总结空行呢。也就是说,在output id=123,text=10中,您是否正在查找
表(mydata$id,mydata$group_id)
?您使用了
dplyr
标记,因此可能是这个
库(dplyr);mydata%%>%group\U by(id,group\U id)%%>%摘要(text=n\u distinct(text))
?(如果您需要distinct)。@s\t更简单的方法可能是:
mydata%>%count(id,group\u id)
@Ali nice,如果不需要distinct,我建议您使用它。OP没有说明它(两者都不清楚),所以我认为这两种解决方案都可以使用。@s\t,一个问题,假设id=123有10行,但只有2行有文本。8行是空的。但我如何不仅总结文本行,还要总结空行呢。即,在输出id=123中,文本=10
tapply(mydata$text, mydata$id, function(x) sum(table(x)))
123 124 
  2   2