2013-07-23 11 views
5

Walczę z tworzeniem wykresu proporcji zmiennej przez czynnik w ggplot.W ggplot2, w jaki sposób mogę utworzyć wykres słupkowy proporcji między czynnikami (i dodać paski błędów)?

Biorąc mtcars dane mają charakter przykładowy i kradzież część roztworu z this question mogę wymyślić

ggplot(mtcars, aes(x = as.factor(cyl))) + 
    geom_bar(aes(y = (..count..)/sum(..count..))) + 
    scale_y_continuous(labels = percent_format()) 

Ten wykres daje mi część każdej kategorii cyl w całym zbiorze.

To, co chciałbym uzyskać to proporcja samochodów w każdej kategorii cyl, które mają automatyczną skrzynię biegów (zmienna binarna am).

Na górze każdego paska chciałbym dodać pasek błędu dla proporcji.

Czy można to zrobić tylko z numerem ggplot? Czy muszę najpierw przygotować ramkę danych z podsumowaniami i użyć jej z opcją wykresów słupkowych w opcji identity?

Znalazłem kilka przykładów na stronie internetowej Cookbook for R, ale dotyczą ciągłej zmiennej y.

Odpowiedz

6

Myślę, że łatwiej byłoby stworzyć nową ramkę danych, a następnie użyć jej do drukowania. Tutaj obliczyłem proporcje i dolne/górne przedziały ufności (wziąłem je od wyniku prop.test()).

library(plyr) 
mt.new<-ddply(mtcars,.(cyl),summarise, 
     prop=sum(am)/length(am), 
     low=prop.test(sum(am),length(am))$conf.int[1], 
     upper=prop.test(sum(am),length(am))$conf.int[2]) 

ggplot(mt.new,aes(as.factor(cyl),y=prop,ymin=low,ymax=upper))+ 
    geom_bar(stat="identity")+ 
    geom_errorbar() 
+0

Wielkie dzięki. Pracował jako urok! – radek

Powiązane problemy