ID Year Firm Score
1 2005 A 2
1 2006 A 5
1 2006 B 1
1 2007 A 36
1 2007 E 69
1 2008 E 8
1 2008 B 54
1 2009 A 25
1 2009 C 2
1 2010 E 2
1 2010 B 2
1 2011 A 5
1 2011 B 5
1 2012 A 4
1 2012 B 1
DataConditional Roll Sum (Rollender-Durchschnitt) in R
In obigen Daten möchte ich Gruppe von 5 Jahre auszuführen, für jeden einzelnen (ID) Summe von 'Score' Roll abhängig laufenden Jahr Firm die Person arbeitet in. Lassen Sie mich das mit einem Beispiel erklären. Angenommen, ich möchte die Summe der Variablen "Score" für das Jahr 2009 rollen, sollte sie zuerst die Firmen überprüfen, in denen die Person (ID) arbeitet. Im Jahr 2009 arbeitet die Person in A und C. Sie sollte dann die rollierende 5-Jahres-Summe von "Score" nur für die Firmen A oder C berechnen. Die 5-jährige rollierende Summe für das Jahr 2009 wird (2 (für das Jahr 2005 Firma A) sein. + 5 ((für das Jahr 2006, Firma A)) + 36 (für das Jahr 2007, Firma A) + 27 (für das Jahr 2009, Firma A und C)) = 70. [Hinweis: Das Jahr 2008 wird ignoriert, da die Person weder in der Firma A registriert ist noch Firma C]
Ich möchte Rolling Average auf ähnlichen Linien auch durchführen. [Anmerkung: Originaldaten hat rund 30 Millionen Beobachtungen]
Bild von Daten können gefunden unter https://i.stack.imgur.com/CyWL0.png –
Check out 'zoo :: rollappl y' – Mako212
Sie sollten eine Probe Ihrer Daten 'dput()' –