【发布时间】:2014-12-30 11:16:28
【问题描述】:
我是使用 dplyr 的新手, 我需要计算组中的不同值。这是一个表格示例:
data=data.frame(aa=c(1,2,3,4,NA), bb=c('a', 'b', 'a', 'c', 'c'))
我知道我可以做以下事情:
by_bb<-group_by(data, bb, add = TRUE)
summarise(by_bb, mean(aa, na.rm=TRUE), max(aa), sum(!is.na(aa)), length(aa))
但是如果我想要唯一元素的数量呢?
我能做到:
> summarise(by_bb,length(unique(unlist(aa))))
bb length(unique(unlist(aa)))
1 a 2
2 b 1
3 c 2
如果我想排除 NA,我可以这样做:
> summarise(by_bb,length(unique(unlist(aa[!is.na(aa)]))))
bb length(unique(unlist(aa[!is.na(aa)])))
1 a 2
2 b 1
3 c 1
但它对我来说有点难以理解。有没有更好的方法来做这种总结?
【问题讨论】:
标签: r dplyr idioms summarization