У меня есть следующие dataframe (пример данных), который имеет даты различных записей DVD для различных пар птиц для многочисленных выводков:Создание столбца ранга на основе двух других (связанных) столбцов в 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
То, что я хотел бы это выводок номер для каждой пары, такие как:
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
Я попытался
ddply(df,.(PairID),transform,BroodNumber = dense_rank(BroodRef))
который Я видел еще один вопрос, но это приводит к тому, что пара 3, BroodRef 39 является BroodNumber 1, а не 3, она должна быть.
Цените любую помощь!
Как это выводок номер вычисленного? Похоже, есть некоторая терминология, которая является доменной спецификой. Не могли бы вы прояснить? – bouncyball
Я бы хотел, чтобы BroodNumber рассчитывался путем разделения данных на пары, а затем заказа BroodRefs в порядке возрастания даты (не по возрастанию порядка BroodRef). Тогда первый набор идентичных BroodRefs будет номером 1, следующим номером набора 2 и так далее до тех пор, пока PairID не изменится. –