簡體   English   中英

按組中出現的順序排列值

[英]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等於1a出現兩次,並按從最舊到最新的順序進行排序,而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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM