Kumulative Summe, die zurückgesetzt wird, wenn 0 auftritt

7

Ich möchte eine kumulative Summe für ein Feld erstellen, aber den aggregierten Wert immer zurücksetzen, wenn eine 0 auftritt.

Hier ist ein Beispiel, was ich will:

%Vor%     
patpat 10.09.2015, 12:27
quelle

3 Antworten

12

Eine andere Basis wäre nur

%Vor%

Dies teilt nur die Spalte b in Gruppen gemäß 0 Erscheinungsbilder auf und berechnet die kumulative Summe von b für diese Gruppen

Eine andere Lösung, die die letzte data.table version (v 1.9.6 +) verwendet

%Vor%

Einige Benchmarks pro Kommentar

%Vor%     
David Arenburg 10.09.2015, 12:39
quelle
5

Noch eine späte Idee:

%Vor%

Und zu vergleichen:

%Vor%     
alexis_laz 11.09.2015 13:06
quelle
4

Sie könnten die Funktion Reduce mit einer benutzerdefinierten Funktion verwenden, die 0 zurückgibt, wenn der neue Wert 0 ist, und andernfalls den neuen Wert zum akkumulierten Wert hinzufügt:

%Vor%     
josliber 10.09.2015 12:37
quelle

Tags und Links