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 AntwortIch 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