2016-06-29 31 views
0
stackedBarChart <- read.csv("StackedBarChart.csv") 
ggplot(stackedBarChart, aes(x=FieldName, y=Quantity, fill=Decision)) + geom_bar(stat='identity') 
stackedBarChart %>% arrange(quantity) 

Was ich tun möchte, ist das Feld durch die Summe zu sortieren. Dies ist der Code, den ich versucht, aber es funktioniert nichtSortieren nach Aggregatfeld in R

by_field_name <- group_by(stackedBarChart, FieldName) 
summarise(by_field_name, sum(Quantity)) 

Hier sind die Linien von meinem Datensatz,

FieldName Quantity Decision 
Issue1 175 Rejected 
Issue1 117 Accepted 
Issue2 238 Rejected 
Issue2 10  Accepted 

Dank!

Antwort

0

Ich würde empfehlen, es als ein Faktor zu behandeln und nur die Reihenfolge der Ebenen festlegen.

stackedBarChart %>% 
mutate(FieldName = factor(FieldName), 
     FieldName = reorder(FieldName, Quantity, FUN = sum)) %>% 
arrange(FieldName) 

die Stufen des Faktors, um zu haben, ist auch der beste Weg ggplot Kenntnis von der Bestellung zu haben.

+0

Das Problem ist für mein gestapeltes Balkendiagramm. Ich möchte jedes eindeutige Feld nach der Summe von Issue1, Issue2 usw. sortieren. In diesem Fall wäre es also (175 + 117 = 292) und Issue 2 (238 + 10-248). –

+0

Das ist, was dieser Code tut. (Ich habe gerade 'FUN = sum' hinzugefügt, falls Sie Felder mit verschiedenen Zeilennummern haben, die standardmäßig nach der Methode sortieren.) Die Standard-Sortierreihenfolge ist immer die niedrigste bis höchste (1 kommt vor 2, a kommt vor b). Wenn du das umkehren willst, ändere 'Menge' in' Menge' in meinem Code. – Gregor

+0

Danke. Ich werde das versuchen und melden. –