Verwenden Sie als Beispiel den Datensatz mpg
, insbesondere die Spalten class
und cyl
. Ich kann sehen, wie viele Einträge gibt es pro Einzel class
und differenzieren die Farbfüllung auf dem CYL-Wert basiert:Aggregieren von Daten mit ggplot
library(ggplot2)
p <- ggplot(mpg)
p <- p + geom_bar(mapping=aes(x=class, fill=factor(cyl)), position=position_dodge())
print(p)
Was ich möchte, ist allerdings sehen, die Durchschnitt Anzahl der Einträge (pro class
), nach verschiedenen Werten von cyl
. Wenn Sie sich das obige Diagramm ansehen, möchte ich einen einzelnen Balken pro Klasse, dessen Höhe die durchschnittliche Höhe der farbigen Balken für diese Klasse sein sollte.
Ich bin in der Lage, dieses Ergebnis zu erhalten, indem den Datenrahmen Vorverarbeitung, zB:
df <- aggregate(formula=cyl~class, data=mpg, FUN=function(x) { length(x)/length(unique(x)) })
p <- ggplot(df)
p <- p + geom_bar(mapping=aes(x=class, y=cyl), stat='identity')
p <- p + ylab('average count')
Das gibt meinen gewünschten Ausgang:
Angesichts der Tatsache, wie stark ggplot2 ist Ich frage mich, ob dies durch ggplot-Funktionen möglich ist. Ich denke, das beinhaltet die Verwendung einer bestimmten stat
(vielleicht mit group=cyl
?), Aber ich bin nicht in der Lage.
einen Blick Geben Sie auf 'stat_summary' [link] (http: //docs.ggplot2 .org/current/stat_summary.html) – user3631369
@ user3631369 Ich spiele gerade damit, aber ich bekomme keine Ergebnisse. Ich kann nicht über das Zylinderfeld aggregieren. – natario