Ich habe folgende Datenrahmen (zB Daten), die die Daten von verschiedenen DVD-Aufnahmen für verschiedene Vogelpaare für zahlreiche Bruten hat:Erstellen einer Rang Spalte basiert auf zwei anderen (verlinkten) Spalten in R
PairID BroodRef DVDdate
1 512 2004-05-22
1 512 2004-05-30
1 512 2004-05-26
1 588 2004-06-30
1 588 2004-07-04
1 588 2004-07-09
2 673 2004-07-19
3 543 2004-06-03
3 543 2004-06-07
3 543 2004-06-11
3 620 2004-07-19
3 39 2005-05-19
3 39 2005-05-23
Was ich möchte, ist eine Brutnummer für jedes Paar, wie zum Beispiel:
PairID BroodRef DVDdate BroodNumber
1 512 2004-05-22 1
1 512 2004-05-30 1
1 512 2004-05-26 1
1 588 2004-06-30 2
1 588 2004-07-04 2
1 588 2004-07-09 2
2 673 2004-07-19 1
3 543 2004-06-03 1
3 543 2004-06-07 1
3 543 2004-06-11 1
3 620 2004-07-19 2
3 39 2005-05-19 3
3 39 2005-05-23 3
I
ddply(df,.(PairID),transform,BroodNumber = dense_rank(BroodRef))
versucht haben, die Ich sah auf einer anderen Frage, aber das ergibt Paar 3, BroodRef 39 BroodNumber 1 und nicht die 3, die es sein sollte.
Schätzen Sie jede Hilfe!
Wie wird diese Brut Zahl berechnet? Es scheint, dass es eine bestimmte Domäne gibt, die domänenspezifisch ist. Kannst du das bitte klären? – bouncyball
Ich möchte, dass die BroodNumber berechnet wird, indem die Daten in Paare aufgeteilt werden und dann die BroodRefs in aufsteigender Reihenfolge sortiert werden (nicht durch aufsteigende BroodRef-Bestellung). Dann wäre der erste Satz identischer BroodRefs Nummer 1, nächster Satz Nummer 2 usw., bis sich die PairID ändert. –