[英]Rank values in order of occurence within groups
我目前正在嘗試按照ID的順序對ID組中的列值進行排名。 我的數據集當前如下所示:
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
僅出現一次。
我遇到了一些代碼,它們按照整個數據集的出現順序對事物進行排序,但是我想按照ID中的出現順序對事物進行排名。 還有代碼可以幫助我對ID中的所有日期進行排名...但是我希望能夠查看各個值。
我該怎么做? 謝謝!
對於按日期排序的更新問題:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.