2016-05-02 18 views
0

Ich habe folgende Datensatz, der ich gerne würde eine boxplot aus machen:R boxplot mehrere Variablen auf einmal

July<-c("Closed","Open") 
Cistus<-c(10.8, 18.9) 
CS<-c(2.004, 3.9) 
Oak<-c(7.4, 12.4) 
OS<-c(0.9,2.1) 

df<-data.frame(July, Cistus, CS, Oak, OS) 

Ich würde meine boxplot mag Cistus und Eiche haben auf der x-Achse, die jeweils mit zwei Boxen (geöffnet und geschlossen). Also insgesamt 4 Boxen ....

Ich bin episch versagt bei diesem ... Bitte können Sie mir helfen? Es tut mir leid für die grundlegende Frage.

Antwort

1

Hier ist eine Modifikation des Codes Vincent aber mit dem subsetting auf die gewünschten Kategorien:

library(reshape2) 
#reshape into long format 
dfnew<-melt(df, "July") 
#subset down to just Cistus and Oak 
dfnew<-droplevels(dfnew[dfnew$variable %in% c("Cistus", "Oak"),]) 
#plot 
boxplot(value ~ July+variable, data=dfnew, las=2, col=c("grey10", "grey50")) 
+0

Vielen Dank für Ihre Antwort! Ich habe nach einem Freund gefragt und es sieht so aus, als würde es jetzt funktionieren ;-) – samyandi

1

Ich würde es mit reshape2 tun, um Ihren data.frame anzuordnen. Dann können Sie Formel in boxplot verwenden, so:

library(reshape2) 
boxplot(July + variable ~ value, melt(df)) 

Mit mehr als einen Wert pro Gruppe und etwas Farbe:

df2 <- data.frame(July=rep(c("Closed", "Open"), each=5), 
        Cistus=runif(10), 
        CS=runif(10), 
        Oak=runif(10), 
        OS=runif(10)) 

boxplot(value ~ July + variable, melt(df2), col=c("grey10", "grey50")) 

Ist das, was Sie suchen?

+0

hm ... das ist nicht genau das, was ich suche. Grundsätzlich ignoriere ich CS und OS in dieser Phase ... Aber auf der Suche nach Cistus.Open, Cistus.Closed, Oak.Open und Oak.closed .... – samyandi

+0

Vielen Dank für Ihre Antwort! – samyandi