R Aggregat mit mehreren Argumenten in Funktion

8

Ich versuche, eine zeitraubende for-Schleife zu vermeiden, indem ich ein Aggregat in einem data.frame verwende. Aber ich brauche, dass die Werte einer der Spalten in die endgültige Berechnung eingeht.

%Vor%

Hinweis: Die Funktion ist nur ein Beispiel!
Das Problem dieser Implementierung ist, dass y=dat$rate alle 4 Raten auf dat gibt, wenn das, was ich will, nur die 2 aggregierten Raten sind! Anny Suggestion, wie ich das machen könnte? Danke!

    
essv 25.10.2012, 09:47
quelle

2 Antworten

5

Folgendes habe ich mit dem Paket " data.table " erreicht:

%Vor%

OK. Es ist also einfach, für nur zwei Variablen zu schreiben, aber was ist, wenn wir viel mehr Spalten haben. Benutze lapply(.SD,...) in Verbindung mit deiner Funktion:

Zuerst einige Daten:

%Vor%

Zweitens, Aggregat:

%Vor%

Wenn Sie ein wirklich großes Dataset haben, sollten Sie data.table im Allgemeinen erkunden.

Was es wert ist, war ich auch in Base R erfolgreich, aber ich bin mir nicht sicher, wie effizient das sein würde, besonders wegen der Transponierung und so weiter.

%Vor%     
A5C1D2H2I1M1N2O1R2T1 26.10.2012 05:36
quelle
2

Eine Lösung besteht darin, ddply aus dem Paket plyr zu verwenden:

%Vor%

Wenn Sie dies auf alle Spalten v anwenden möchten, würde ich empfehlen, zuerst Ihre Datenstruktur etwas zu ändern:

%Vor%

und dann erneut ddply verwenden:

%Vor%

... oder benötigen Sie eine Standard-R-Lösung, können Sie by :

verwenden %Vor%     
Paul Hiemstra 25.10.2012 10:07
quelle

Tags und Links