2013-05-18 9 views
15

Jestem zaskoczony, dlaczego boxplots nie zamawiają w tej działki:Reorder() nie jest prawidłowo reorganizację zmienną czynnikiem ggplot

set.seed(200) 
x <- data.frame(country=c(rep('UK', 10), 
          rep("USA", 10), 
          rep("Ireland", 5)), 
       wing=c(rnorm(25))) 

ggplot(x, aes(reorder(country, wing, median), wing)) + geom_boxplot() 

enter image description here

Jak mogę zamówić boxplots opartych na najwyższe najniższe mediany (od lewej do prawej)?

+3

Dlaczego to uzyskać dół głos? Pytanie daje powtarzalny kod i wyraźnie pokazuje wysiłek. – Roland

Odpowiedz

8

Ponieważ nie zrobiłeś tego jako czynnik uporządkowany. Spróbuj

ggplot(x, aes(reorder(country, wing, median, order=TRUE), wing)) + geom_boxplot() 

enter image description here

+3

w tym 'order = TRUE' daje dokładnie ten sam wykres dla mnie – luciano

+0

Dodałem wynik, który otrzymuję z kodem. Jeśli chcesz uzyskać kolejność malejącą, musisz użyć 'function (x) -median (x)'. – Roland

+0

Czyszczenie obszaru roboczego i ponowne uruchamianie R dało mi tę samą fabułę, co Ty, – luciano

0
ggplot(x, aes(reorder(country, wing, FUN = median), wing)) + geom_boxplot() 
+0

Chociaż ten kod może odpowiedzieć na pytanie, podanie dodatkowego kontekstu dotyczącego tego, w jaki sposób i/lub dlaczego rozwiązuje problem, poprawiłoby długoterminową wartość odpowiedzi. – Badacadabra

Powiązane problemy