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!
Folgendes habe ich mit dem Paket " data.table
" erreicht:
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% Eine Lösung besteht darin, ddply
aus dem Paket plyr
zu verwenden:
Wenn Sie dies auf alle Spalten v
anwenden möchten, würde ich empfehlen, zuerst Ihre Datenstruktur etwas zu ändern:
und dann erneut ddply
verwenden:
... oder benötigen Sie eine Standard-R-Lösung, können Sie by
: