当前位置:  开发笔记 > 编程语言 > 正文

在r中计数为零时按计数分组

如何解决《在r中计数为零时按计数分组》经验,为你挑选了1个好方法。

我使用聚合函数来按组计数.如果count> 0,则聚合函数仅返回组的计数.这就是我所拥有的

dt <- data.frame(
n  = c(1,2,3,4,5,6),
id = c('A','A','A','B','B','B'),
group = c("x","x","y","x","x","x")) 

应用聚合函数

my.count <- aggregate(n ~ id+group, dt, length)

现在看到结果

my.count[order(my.count$id),]

我得到了关注

id group   n
1  A     x 2
3  A     y 1
2  B     x 3

我需要以下内容(最后一行为零,我需要)

id group   n
1  A     x 2
3  A     y 1
2  B     x 3
4  B     y 0

谢谢你提前帮忙



1> akrun..:

我们可以创建另一个列'ind'然后用于dcast从'long'重新整形为'wide',指定fun.aggregateas lengthdrop=FALSE.

library(reshape2)
dcast(transform(dt, ind='n'), id+group~ind,
           value.var='n', length, drop=FALSE)
#  id group n
#1  A     x 2
#2  A     y 1
#3  B     x 3
#4  B     y 0

或者是一个base R选项

 as.data.frame(table(dt[-1]))

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有