data.table, wie man cumsum zurücksetzt (oder eine Gruppe zur Gruppe hinzufügt)

7

Ich habe eine Datentabelle mit einigen berechneten Spalten

%Vor%

Was ich tun muss, ist q nach y == 0 zurückzusetzen. Im Wesentlichen gehören Zeilen 1: 4 zur Untergruppe A und 5: 6 zur Untergruppe B. Das Ergebnis sollte lauten:

%Vor%

Ich denke, ich könnte eine andere Spaltengruppe mit den Werten A, B, ... einführen, die sich nach y == 0 ändern würde und dann durch expession verwenden, aber ich weiß nicht wie (zumindest nicht anders als mit für Klausel)

    
zapp0 13.04.2015, 11:30
quelle

3 Antworten

8

Versuche so etwas

%Vor%     
konvas 13.04.2015, 11:38
quelle
9

Mit data.table devel Version

%Vor%     
ExperimenteR 13.04.2015 11:41
quelle
6

Sie könnten die Bedingung c(0L, cumsum(y == 0L))[-length(y)] in die by -Anweisung

einfügen %Vor%     
David Arenburg 13.04.2015 11:39
quelle

Tags und Links