Am пытается выяснить это ..создать уникальный идентификатор, основанный на дате в R
У меня есть этот набор данных:
id date
1 1 2016-01-01
2 1 2016-01-01
3 1 2016-01-02
4 2 2016-01-01
5 2 2016-01-03
6 2 2016-01-04
7 3 2016-01-01
8 3 2016-01-05
9 3 2016-01-05
так что я пытаюсь использовать dplyr для этого, по:
transformed <- data %>% group_by(id) %>% transform(., flag=match(date, unique(date)))
и я получил это:
id date flag
1 1 2016-01-01 1
2 1 2016-01-01 1
3 1 2016-01-02 2
4 2 2016-01-01 1
5 2 2016-01-03 3
6 2 2016-01-04 4
7 3 2016-01-01 1
8 3 2016-01-05 5
9 3 2016-01-05 5
но я стремясь к этому,
id date flag
1 1 2016-01-01 1
2 1 2016-01-01 1
3 1 2016-01-02 2
4 2 2016-01-01 1
5 2 2016-01-03 2
6 2 2016-01-04 3
7 3 2016-01-01 1
8 3 2016-01-05 2
9 3 2016-01-05 2
с первого взгляда, это не кажется, что transform
распознает команду трубопроводов. Иды следуют за порядком даты.
Как достичь этого с помощью dplyr? Для дат as.character
или as.Date
, это не работает.
Почему вы используете 'transform'? Вы можете просто мутировать, т. Е. 'Df%>% group_by (id)%>% mutate (new = match (date, unique (date)))' – Sotos
о, мой бог .. я должен был осознать. большое спасибо! – bzzbzzRzzbzz