simple data.frame reshape

7

Ich bin gerade von einer längeren Pause zurück zu R gekommen und habe einige echte Probleme, mich daran zu erinnern, wie man Daten umformt. Ich weiß, dass das, was ich tun möchte, einfach ist, aber aus irgendeinem Grund bin ich heute Nacht doof und habe mich mit dem Schmelzen und Umformen verwirrt. Wenn jemand mich schnell in die richtige Richtung zeigen könnte, würde es sehr geschätzt werden.

Ich habe einen Datenrahmen als solcher:

%Vor%

Ich möchte mit einer Zählung der Ereignisse nach Jahr und nach Person enden: (damit ich im Laufe der Jahre eine schnelle Liniendiagramm für jede Person grafisch darstellen kann)

z.B.

%Vor%

Vielen Dank für das Lesen.

    
user1378122 06.05.2012, 14:36
quelle

3 Antworten

8

Ich würde wahrscheinlich das reshape2 -Paket und die dcast -Funktion verwenden, da es sowohl die Umformung als auch die Aggregation in einem Schritt behandelt:

%Vor%     
Chase 06.05.2012, 14:56
quelle
7

In diesem Fall können Sie einfach tapply :

verwenden %Vor%

Das Ergebnis ist eine Matrix. Diese Lösung erzeugt NAs, wenn leere Zellen vorhanden sind.

    
Ernest A 06.05.2012 15:09
quelle
5

xtabs von Base R funktioniert sehr gut für dieses Problem:

%Vor%

Sie könnten ihre Ausgabe an Matplot übergeben, da sie ein Tabelle / Matrix-Objekt zurückgibt:

%Vor%

Die Ausgabe x-Achse in diesem kleinen Beispiel ist möglicherweise nicht das, was Sie wollen, aber mit mehr Jahren, könnte es eine befriedigendere Standard-Achsenbeschriftung geben. Oder Sie könnten die Standard-X-Achsen-Labels mit xaxt="n" unterdrücken und axis verwenden, um sie wie gewünscht zu beschriften:

%Vor%     
42- 06.05.2012 15:44
quelle

Tags und Links