如果没有金额聚合的中间步骤,我怎样才能得到相同的图?

前端之家收集整理的这篇文章主要介绍了如果没有金额聚合的中间步骤,我怎样才能得到相同的图?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果没有聚合列的中间计算,我怎样才能得到相同的图.

我有这些数据:

set.seed(1234)
dat <- data.frame(month = gl(3,1,20),family= gl(5,amount= sample(1:3,20,rep=TRUE))

使用这段代码,我得到了一个条形图.每个条形图,是按家庭和按月计算的金额之和.首先,我创建了一个新的aggegate列V1.

## I am using data.table,you can get it by ddply also
library(data.table)
dd <- data.table(dat)
hh <- dd[,sum(amount),by=list(month,family)]

然后我使用这段代码绘图:

ggplot(data=hh,aes(x=month,y=V1,fill=family))+
  geom_bar(stat = "identity")

得到这个情节:

这有效,但我想要更简单的方法.我认为使用stat_sum或其他ggplot2技术我可以在没有中间聚合步骤的情况下执行此操作.这样的事情:

## don't run this doesn't work
 ggplot(data=dat,y=amount,fill=family))+
  geom_bar(stat = "sum")
ggplot(data=dat,fill=family,group=family))+
  geom_bar(stat = "summary",fun.y=sum)

猜你在找的设计模式相关文章