Ich habe einen großen Datenrahmen (3M + Zeilen). Ich versuche zu zählen, wie oft ein bestimmter ActivityType in einem 21-Tage-Fenster angezeigt wird. Ich habe meine Lösung aus rollende Summe durch eine andere Variable in R
Und das ist nur für ActivityType = Email, dann muss ich das gleiche für andere ActivityType-Ebenen tun. Der Link, von dem ich die Lösung erhalten habe, sprach von "mcapply" anstatt von "mapply". Bitte lassen Sie mich wissen, wie ich McApply oder eine andere Lösung verwenden kann, die es schneller machen wird.
Unten ist die erwartete Ausgabe. Für jede Zeile nehme ich das ActivityDate und 21 Tage davor und dieser 21-Tage-Zeitraum ist mein Zeitfenster. Ich zähle die ganze Zeit ActivityType="Email" erscheint in diesem Zeitfenster.
%Vor% Versuchen Sie einen Ansatz, bei dem die Datentabelle sowohl für die Liste der Namen und Daten als auch für die Quelle der Anzahl der E-Mails verwendet wird. Dies geschieht in data.table
, indem DT
im Argument i
von DT
zusammen mit by = .EACHI
verwendet wird. Code könnte wie folgt aussehen:
Im Folgenden wird derselbe Ansatz wie oben beschrieben, jedoch mit einigen Änderungen, die die Geschwindigkeit abhängig von Ihren Daten um 30-40% verbessern können.
%Vor%Tags und Links r data.table dplyr zoo