根据分组日期下的记录数,我想得出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
答案 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