Ранговые переменные после DATE и ID - PullRequest
1 голос
/ 01 мая 2020

У меня есть следующая таблица:

    ID OP      DATE
1   1  A 2001-01-02
2   1  B 2015-04-25
3   2  A 2000-04-01
4   3  D 2014-04-07
5   4  C 2012-12-01
6   4  A 2005-06-16
7   4  D 2009-01-20
8   4  B 2009-01-20
9   5  A 2010-10-10
10  5  B 2003-11-09
11  6  B 2004-01-09

d <- wrapr::build_frame( "ID" , "OP", "DATE" | 1 , "A" , "2001-01-02" | 1 , "B" , "2015-04-25" | 2 , "A" , "2000-04-01" | 3 , "D" , "2014-04-07" | 4 , "C" , "2012-12-01" | 4 , "A" , "2005-06-16" | 4 , "D" , "2009-01-20" | 4 , "B" , "2009-01-20" | 5 , "A" , "2010-10-10" | 5 , "B" , "2003-11-09" | 6 , "B" , "2004-01-09" )

, которую я хочу отсортировать следующим образом:

    ID   OP      DATE    RANK
1   1    A 2001-01-02    1
2   1    B 2015-04-25    2
3   2    A 2000-04-01    1
4   3    D 2014-04-07    1
5   4    A 2005-06-16    1
6   4    D 2009-01-20    2
7   4    B 2009-01-20    2
8   4    C 2012-12-01    3
9   5    B 2003-11-09    1
10  5    B 2010-10-10    2
11  6    B 2004-01-09    1

То есть каждый OP должен быть сгруппирован по ID и отсортирован по DATE и затем ранжируется по ДАТА.

С уважением, Ганс

1 Ответ

2 голосов
/ 01 мая 2020

Мы можем использовать dense_rank

library(dplyr)
d %>%
   group_by(ID) %>%
   mutate(Rank = dense_rank(DATE))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...