Ранговые значения в порядке появления в группах - PullRequest
0 голосов
/ 18 апреля 2019

В настоящее время я пытаюсь ранжировать значения столбцов в группах идентификаторов в порядке их появления.Мой набор данных в настоящее время выглядит следующим образом:

  ID Value      Date
1  1     a  1/1/2019
2  1     b  2/5/2018
3  1     a  3/3/2019
4  2     a 6/12/1975
5  2     b  5/4/2017
6  2     b 12/3/2016
7  3     c  1/3/2015
8  3     a  2/1/2015
9  4     a  1/1/1991

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

  ID    Value   Date    Occurence
1  1     a  1/1/2019         1
2  1     b  2/5/2018         1
3  1     a  3/3/2019         2
4  2     a 6/12/1975         1
5  2     b  5/4/2017         2
6  2     b 12/3/2016         1
7  3     c  1/3/2015         1
8  3     a  2/1/2015         1
9  4     a  1/1/1991         1

Итак, мы можем видеть, где IDравный 1, a встречается дважды и ранжируется в порядке от самого старого до самого нового, а b оценивается только один раз, потому что это происходит только один раз для ID 1.

Я пришелпо всему коду, чтобы ранжировать вещи в порядке появления для всего набора данных, но я хотел бы ранжировать вещи в порядке появления в идентификаторах.Существует также код, который поможет мне ранжировать все даты в идентификаторе ... но я хочу иметь возможность просматривать отдельные значения.

Как бы я это сделал?Спасибо!

1 Ответ

2 голосов
/ 18 апреля 2019

Для обновленного вопроса с сортировкой по дате:

library(lubridate)
df %>% 
mutate_at("Date",dmy) %>%  #convert to date-object
arrange(Date) %>%  #sort by date
group_by(ID,Value) %>%  #group by ID-Value pairs
mutate(Occurence = row_number()) #mutate new column with occurence

df
     ID Value Date       Occurence
  <int> <chr> <date>         <int>
1     2 a     1975-12-06         1
2     4 a     1991-01-01         1
3     3 a     2015-01-02         1
4     3 c     2015-03-01         1
5     2 b     2016-03-12         1
6     2 b     2017-04-05         2
7     1 b     2018-05-02         1
8     1 a     2019-01-01         1
9     1 a     2019-03-03         2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...