在分组后查找R data.table中列的计数和平均值

数据挖掘 数据挖掘 r
2021-10-16 02:34:53

我有一个 5 列的数据表。我想对一列进行分组,并希望获得另一列的计数,id.

我这样做是这样的: dt[,length(id),by=dt$cid]

如果我也想得到sum of id,我该如何进行?我试过这个:

dt[,(sum(id) length(id)),by=dt$cid]

但它没有用。你能帮忙吗?

谢谢

3个回答

如果你想得到 but 的and sumlength可以这样做:iddata.table

dt[,.(total=sum(id), n=length(id)), by=cid]

您甚至可以使用以下.N运算符以较短的格式编写data.table

dt[,.(total=sum(id), .N), by=cid]

使用轻拍,

with(dt,tapply(id, cid, FUN=sum))

您可以将 tapply 或 aggregate 与自定义函数一起使用。

聚合(Id~cid, data=dt, FUN=function(x) c(mn=mean(x),ln=length(x)))

您可能想查看我的博客,我在其中讨论了一些其他场景。

http://r4sql mind.blogspot.com/2015/06/selecting-data-from-data-frame.html