R:按日期排列的项目组的后续等级之间的差异

时间:2019-08-16 15:25:01

标签: r dplyr

根据分组日期下的记录数,我想得出ID的排名,并找出相同ID的顺序排名之间的差异。

我设法得出了排名

"llo"

结果

data_new <- data_new %>%
  group_by(Date) %>%
  mutate(my_ranks = order(order(Date, NumRecords, decreasing=FALSE)))

不确定如何添加另一列来表示ID排名与日期的差异。

Date  NumRecords ID my_ranks    
2019-03 3   L99887  59     
2019-04 1   L99887  25      
2019-05 1   L99887  22      
2019-06 2   L99887  46  
2019-02 6   L98849  52  
2019-04 19  L98849  108 
2019-05 18  L98849  126 
2019-06 18  L98849  116 
2019-07 17  L98849  136 
2019-08 3   L98849  30 

1 个答案:

答案 0 :(得分:2)

一种选择是按“ ID”分组,然后使用date in 11-12-1988 is shown as 891112; date in 01-01-2000 is shown as 101; date in 09-01-2009 is shown as 90901; date in 03-02-2019 is shown as 190302

diff

数据

library(dplyr)
data_new %>%
     group_by(ID) %>%
     mutate(Rank_diff = -1 *c(0, diff(my_ranks))) 
# A tibble: 10 x 5
# Groups:   ID [2]
#   Date    NumRecords ID     my_ranks Rank_diff
#   <chr>        <int> <chr>     <int>     <dbl>
# 1 2019-03          3 L99887       59         0
# 2 2019-04          1 L99887       25        34
# 3 2019-05          1 L99887       22         3
# 4 2019-06          2 L99887       46       -24
# 5 2019-02          6 L98849       52         0
# 6 2019-04         19 L98849      108       -56
# 7 2019-05         18 L98849      126       -18
# 8 2019-06         18 L98849      116        10
# 9 2019-07         17 L98849      136       -20
#10 2019-08          3 L98849       30       106