Stata: Maximale Anzahl aufeinanderfolgender Vorkommen desselben Werts in Variablen

Beobachtungen in meinem Datensatz sind Player und binäre Variablentemp1 up ist gleich 1, wenn der Spieler einen Zug gemacht hat, andernfalls gleich Null. Ich möchte die maximale Anzahl aufeinanderfolgender Züge pro Spieler berechnen.

+------------+------------+-------+-------+-------+-------+-------+-------+
| simulation | playerlist | temp1 | temp2 | temp3 | temp4 | temp5 | temp6 |
+------------+------------+-------+-------+-------+-------+-------+-------+
|          1 |          1 |     0 |     1 |     1 |     1 |     0 |     0 |
|          1 |          2 |     1 |     0 |     0 |     0 |     1 |     1 |
+------------+------------+-------+-------+-------+-------+-------+-------+

Meine Idee war es, Hilfsvariablen in einer Schleife zu generieren, die aufeinanderfolgende Duplikate zählen und dann egen, rowmax () anwenden:

+------------+------------+------+------+------+------+------+------+------+
| simulation | playerlist | aux1 | aux2 | aux3 | aux4 | aux5 | aux6 | _max |
+------------+------------+------+------+------+------+------+------+------+
|          1 |          1 |    0 |    1 |    2 |    3 |    0 |    0 |    3 |
|          1 |          2 |    1 |    0 |    0 |    0 |    1 |    2 |    2 |
+------------+------------+------+------+------+------+------+------+------+

Ich habe Probleme damit, eine lokale Zählervariable einzuführen, die schrittweise um 1 erhöht wird, wenn aufeinanderfolgende Bewegungen ausgeführt werden, und ansonsten auf Null zurückgesetzt wird (der folgende Code hält Hilfsvariablen fest):

    quietly forval i = 1/42 { /*42 is max number of variables temp*/
    local j = 1 
    gen aux`i'=.    
    local j = `j'+1
    replace aux`i'= `j' if temp`i'!=0
} 

Antworten auf die Frage(1)

Ihre Antwort auf die Frage