Come posso ottenere lo stesso grafico senza il calcolo intermedio della colonna aggregata.Come posso ottenere lo stesso grafico senza il passaggio intermedio dell'ammontare?
ho questi dati:
set.seed(1234)
dat <- data.frame(month = gl(3,1,20),
family= gl(5,1,20),
amount= sample(1:3,20,rep=TRUE))
Utilizzando questo codice, ottengo un barplot. Dove ogni barra è la somma dell'importo per famiglia e per mese. prima creo una nuova colonna aggegata 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)]
Poi ho tracciare utilizzando questo codice:
ggplot(data=hh,aes(x=month,y=V1,fill=family))+
geom_bar(stat = "identity")
Per ottenere questa trama:
Questo funziona ma voglio metodo più semplice. Penso che usando le tecniche stat_sum
o altre tecniche ggplot2
posso farlo senza il passaggio di aggregazione intermedio. qualcosa di simile:
## don't run this doesn't work
ggplot(data=dat,aes(x=month,y=amount,fill=family))+
geom_bar(stat = "sum")
! grazie carini e semplici! forse puoi aggiungere qualche spiegazione ... sembra che tu non abbia bisogno del gruppo di aes ... – agstudy
Hai bisogno del gruppo per ottenere l'ordine corretto. Non sono sicuro del perché e non sono in grado di scoprire cosa ggplot2 fa sotto il cofano. – Roland