Zählen Sie die Anzahl der vorherigen Elemente nach Gruppe in R [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Hinzufügen einer Zählerspalte für eine Reihe ähnlicher Zeilen in R [duplizieren] 1 Antwort

Ich möchte eine neue Variable erstellen, die die Anzahl der vorherigen Elemente in einer nach Gruppe zählt. Das meine ich mit demesoph Datensatz als Beispiel.

zuerst sortiere ich den Datensatz nach meiner Gruppeesoph$agegp, esoph$alcgp und eine zusätzliche Wertespalte-esoph$ncontrols.

Dies gibt mir den folgenden Datensatz

x<-esoph[order(esoph$agegp, esoph$alcgp, -esoph$ncontrols ), ]
x

   agegp     alcgp    tobgp ncases ncontrols
1  25-34 0-39g/day 0-9g/day      0        40
2  25-34 0-39g/day    10-19      0        10
3  25-34 0-39g/day    20-29      0         6
4  25-34 0-39g/day      30+      0         5
5  25-34     40-79 0-9g/day      0        27
6  25-34     40-79    10-19      0         7
8  25-34     40-79      30+      0         7
7  25-34     40-79    20-29      0         4
9  25-34    80-119 0-9g/day      0         2
11 25-34    80-119      30+      0         2
...

Jetzt möchte ich eine neue Variable mit einer Art Index erstellen, die in jeder Zeile um eins erhöht wird. Immer wenn die nächste nach Gruppe startet, kehrt der Index auf 1 zurück.

Die resultierende Tabelle wäre die folgende (mit der zusätzlichen Indexspalte):

   agegp     alcgp    tobgp ncases ncontrols index
1  25-34 0-39g/day 0-9g/day      0        40     1
2  25-34 0-39g/day    10-19      0        10     2
3  25-34 0-39g/day    20-29      0         6     3
4  25-34 0-39g/day      30+      0         5     4
5  25-34     40-79 0-9g/day      0        27     1
6  25-34     40-79    10-19      0         7     2
8  25-34     40-79      30+      0         7     3
7  25-34     40-79    20-29      0         4     4
9  25-34    80-119 0-9g/day      0         2     1
11 25-34    80-119      30+      0         2     2
...

Wie berechne ich diese Spalte?

Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage