Bedingte kumulative Summe in R

7

Ich habe einen Zeitreihendatenrahmen und möchte kumulative Renditen für Aktiensymbole innerhalb eines Tages für eine Reihe von Daten berechnen. Wenn sich das Symbol und / oder das Datum ändern, sollte die kumulative Rückgabe zurückgesetzt werden. Jede Hilfe wäre willkommen. Ein kleines Beispiel meines Datenrahmens ist darunter, einschließlich, was die kumulative Summenspalte zurückgeben sollte. Vielen Dank.

%Vor%     
David 24.05.2013, 18:45
quelle

2 Antworten

11

Mit dem Paket data.table ist das trivial. Wenn Ihre Daten in data.frame namens dat :

sind %Vor%

Dabei ist .SD die Teilmenge von data.table , die von den Gruppen by definiert wird. Weitere Informationen finden Sie in ?data.table .

Sie können Spaltennamen auch direkt übergeben:

%Vor%

In Ihrem speziellen Beispiel tun Sie:

%Vor%     
Justin 24.05.2013 18:58
quelle
9

Dies ist ein typischer Fall für die Split-Apply-Kombination Strategie: Sie teilen Ihre data.frame durch eindeutige Kombinationen bestimmter Spalten (Datum und Symbol), wenden Sie eine Prozedur auf die Teilmenge an ( cumsum on Return) und kombinieren Sie die Teilmengen wieder mit einem großen data.frame . Dies kann leicht mit ddply aus dem Paket plyr erreicht werden:

%Vor%     
Beasterfield 24.05.2013 19:00
quelle