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% Mit dem Paket data.table
ist das trivial. Wenn Ihre Daten in data.frame
namens dat
:
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% 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: