我的数据框中有一个变量,一周,代表那个,一周和一年(例如201501 = 2015年第1周)。我想对这个变量进行排名,但是当n + 1不紧跟n时,增加排名。最终我希望排名看起来如下:
yearweek rank
201501 1
201502 1
201503 1
201507 2
201510 3
201511 3
201512 3
201520 4
我该怎么做呢?
答案 0 :(得分:1)
我们取相邻元素的差异,检查它是否不等于1,并得到逻辑向量的累积和。
df1$rank <- cumsum(c(TRUE,diff(df1$yearweek)!=1))
df1
# yearweek rank
#1 201501 1
#2 201502 1
#3 201503 1
#4 201507 2
#5 201510 3
#6 201511 3
#7 201512 3
#8 201520 4