2016-06-10 16 views
1

Ich habe eine große Datenmenge, wie ähnlich wie folgt aussieht,Wie zeichne ein Boxplot von mehrspaltigen gruppierten Frequenz in R?

StudentID SectorID ClassID 
1   A Team_1 Class_1 
2   A Team_1 Class_1 
3   B Team_1 Class_1 
4   B Team_2 Class_1 
5   B Team_2 Class_1 
6   A Team_2 Class_1 
7   A Team_3 Class_1 
8   C Team_3 Class_2 
9   C Team_3 Class_2 
10   C Team_3 Class_2 
11   C Team_3 Class_2 
12   C Team_1 Class_2 
13   D Team_1 Class_2 
14   D Team_1 Class_2 

Dies wird durch erzeugt werden könnte,

stg <- data.frame(StudentID = c(rep("A", 2), rep("B", 3), rep("A", 2), rep("C", 5), rep("D", 2) ), 
        SectorID = c(rep("Team_1", 3), rep("Team_2", 3), rep("Team_3", 5), rep("Team_1", 3)),    
        ClassID  = c(rep("Class_1", 7), rep("Class_2", 7))    
) 

Dann Frequenz von StudentID von jedem Sektor und dann Klasse gruppiert finden verwaltet.

stg.a <- aggregate(stg$StudentID, by = list(SectorID = stg$SectorID, ClassID = stg$ClassID), count) 

Aber hier gibt Count eine Art komplexe Liste. Und wenn Sie stg.a überprüfen, werden Sie seltsam oder scheinbar irreführende Ausgabe. Also, ich konvertiert es in eine Matrix,

stg.a.f <- as.data.frame(as.matrix(stg.a)) 

und das wie folgt aussieht,

SectorID ClassID x.x x.freq 
1 Team_1 Class_1 1, 2 2, 1 
2 Team_2 Class_1 1, 2 1, 2 
3 Team_3 Class_1 1  1 
4 Team_1 Class_2 3, 4 1, 2 
5 Team_3 Class_2 3  4 

Die ersten Zeilen liest, In Team_1, in Class_1 Matrikelnummer 1 (ID: A), erschienen 2 mal, Student Nummer 2 (ID: B), erschien 1 mal.

Nun möchte ich dies als Diagramme, hauptsächlich Boxplot, sagen auf der Y-Achse, ich möchte die Frequenz sehen (wenn möglich durch Farbe von Student_ID (xx) getrennt) und dann nach einigen Faktoren gruppiert (zB Team, Klasse)

Antwort

0

Ich sehe den Versuch, die Frequenz als komplex ohne gewünschte Ergebnisse zu finden. Ich empfehle, einen einfachen data.frame zu erstellen, indem man kombinierte Elemente findet und ihre Häufigkeiten aufzeichnet. Dies kann mit der table Funktion wie folgt vorgenommen werden:

stg.a <- as.data.frame(table(stg$StudentID, stg$SectorID, stg$ClassID)) 
names(stg.a)<-c(colnames(stg), 'Freq') 

Es gibt mögliche Kombinationen mit Nullwerten. Abhängig von der gewünschten Analyse haben Sie möglicherweise einen Wert, um sie aus dem Set zu entfernen oder zu entfernen. Wenn das Entfernen der Nullwerte die beste Option ist, dann führen Sie den Befehl

aus.

Dies sollte eine einfachere Plattform zum Erstellen Ihrer Grafiken bieten.

Lassen Sie mich wissen, wenn Sie Hilfe bei Grundstücken benötigen. Ich bitte um mehr Klarheit als im OP dargelegt, was Sie zu zeigen versuchen und wie.

+0

1) Danke eine Million @sfyn für Ihre Zeit. Ihre Hilfe löst sicherlich das grundlegende Problem, das ich lösen wollte. In dieser Lösung konnte ich jedoch (noch) keine Facetten anwenden, um unterschiedliche Gruppierungen anzuzeigen. << Noch versuche ich 2) In meinem früheren Ansatz, um das Problem zu lösen: Es enthält StudentID Informationen in den Daten, wahrscheinlich gibt uns eine Möglichkeit, jeden Punkt gemäß StudentID zu färben. Ich denke, das wäre interessant zu sehen. << Ich schlug die Wand wie früher. –

Verwandte Themen