2016-03-29 11 views
0

Ich versuche, ein Balkendiagramm für die Veröffentlichung zu erstellen, und versuche die Änderungen in den Operationstypen in unserem Krankenhaus vor einer Curriculum-Implementierung zu zeigen und danach "BR" bzw. "AR". Die Operationsarten sind "Offen", "Laparoskopisch" und "Roboter". Ich möchte, dass die "BR" -Werte vor den "AR" -Werten in meinem Balkendiagramm stehen, aber ich kann nicht herausfinden, wie ich R dazu bringen kann, sie in dieser Reihenfolge zu lesen (ich bin ziemlich neu in R und Codierung) :(). mein Datenrahmen dfIch kann R nicht dazu bringen, meine zusammengefassten Daten nicht in alphabetischer Reihenfolge zu speichern

namens
  bin type cases_per_month 
1   Open BR   18.35 
2   Open AR   15.50 
3 Laparoscopic BR   4.25 
4 Laparoscopic AR   1.95 
5  Robotic BR   0.10 
6  Robotic AR   1.15 

ggplot(data=df, aes(x=bin, y=cases_per_month)) + geom_bar(stat="identity") 

data <- tapply(df$cases_per_month, list(df$type, df$bin), sum) 
barplot(data, beside=T, col=c("black", "grey"), 
    main="Average Cases per Month,BR and AR: Ventral", 
    xlab="Case Type", ylab="Average Cases per Month") 
legend(locator(1), rownames(data), fill=c("black","grey")) 

weil R liest „BR“ und „AR“ als Atom-Vektoren, die meisten der Befehle, die ich versucht habe, ich es nicht zulassen, neu anordnen, wie ich will

enter image description here

Das ist, was ich jetzt immer. ich meine y-Achse will 20 auch gehen, aber ich brauche nur, dass googeln, ich bin sicher, dass

+1

Verwenden Sie einen "Faktor" und setzen Sie die 'Ebenen' in Ihrer gewünschten Reihenfolge – MichaelChirico

+0

Ich habe versucht' Daten $ Typ <- Faktor (Daten $ Typ, Ebenen = c ("BR", "AR")) ', aber R sagt, dass der $ Operator für atomare Vektoren ungültig ist – ehandren

+0

Die Variable 'data' enthält nicht die Spalte' type'. Also sagt R das. @ehandren –

Antwort

0

Dieser ist ein bisschen schwierig. Hier ist meine Lösung:

# Load ggplot 
library(ggplot2) 

# Create data frame 
bin <- c('Open', 'Open', 'Laparoscopic', 'Laparoscopic', 'Robotic', 'Robotic') 
type <- c('BR', 'AR', 'BR', 'AR', 'BR', 'AR') 
cases.per.month <- c(18.35, 15.5, 4.25, 1.95, .1, 1.15) 
df <- data.frame(bin, type, cases.per.month) 

# Reorder levels 
df$type <- factor(df$type, c('BR', 'AR')) 

# Plot BR and AR types side-by-side 
ggplot(df, aes(x = bin, y = cases.per.month, fill = type)) + geom_bar(stat = 'identity', position = 'dodge') 

Auch willkommen in R!

3

Komm schon. Du brauchst das nur.

data <- data[2:1, ] 

Ihre Figur wird durch die barplot Funktion im graphics Paket anstelle des ggplot2 Paket erstellt. Die ggplot Zeile ist in Ihren Skripten nutzlos. Verwenden Sie für Ihr y axis Problem den ylim Parameter.

barplot(data,beside=T,col=c("black","grey"), 
     main="Average Cases per Month,BR and AR: Ventral", 
     xlab="Case Type",ylab="Average Cases per Month", ylim=c(0,20)) 
+0

Vielen Dank, Ven Yao! Das hat wirklich geholfen! Ich weiß, es ist ein Kinderspiel für die meisten von euch hier. Danke noch einmal! – ehandren

Verwandte Themen