我有一个 5 列的数据表。我想对一列进行分组,并希望获得另一列的计数,id.
我这样做是这样的: dt[,length(id),by=dt$cid]。
如果我也想得到sum of id,我该如何进行?我试过这个:
dt[,(sum(id) length(id)),by=dt$cid]
但它没有用。你能帮忙吗?
谢谢
我有一个 5 列的数据表。我想对一列进行分组,并希望获得另一列的计数,id.
我这样做是这样的: dt[,length(id),by=dt$cid]。
如果我也想得到sum of id,我该如何进行?我试过这个:
dt[,(sum(id) length(id)),by=dt$cid]
但它没有用。你能帮忙吗?
谢谢
如果你想得到 but 的and sum,length你可以这样做: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