我使用聚合函数来按组计数.如果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
谢谢你提前帮忙
我们可以创建另一个列'ind'然后用于dcast
从'long'重新整形为'wide',指定fun.aggregate
as length
和drop=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]))