如何在dplyr R中创建连续两年的ID

rta7y2nd  于 2023-03-15  发布在  其他
关注(0)|答案(1)|浏览(155)

我有一个类似的数据集如下

cell  year month day_of_month day_of_year preliq_q tsup_h_q tinf_h_q   t_q
   <dbl> <dbl> <dbl>        <dbl>       <dbl>    <dbl>    <dbl>    <dbl> <dbl>
 1     4  2002     2           26          57      5.7     12.1      8.6  10.2
 2     4  2002     2           27          58      5.1      9.3      5.3   6.7
 3     4  2002     2           28          59      6.7      8.7      4.8   6.2
 4     4  2003     2           26          57      0       13.2      3.7   7.9
 5     4  2003     2           27          58      0       16.4      7.5  10.7
 6     4  2003     2           28          59      5.6     10        7.2   8.6
 7     4  2004     2           26          57      0.2      2.8      1     1.5
 8     4  2004     2           27          58      1.2      2.8      0.5   1.8
 9     4  2004     2           28          59      3.2      3.5      2.3   2.9
10     4  2004     2           29          60      0.2      3.7      0.2   2  
11     4  2005     2           26          57      0.8      4.3      0.6   2.1
12     4  2005     2           27          58      0        0.5     -0.5  -0.2
13     4  2005     2           28          59      0        0.2     -4.7  -2.1

我想为2002-2003年,2003-2004年等的所有值创建一个ID。目前我在dplyr中找不到这样做的方法。你猜怎么着?谢谢,Renan
我觉得这和rleid有关系但我不知道怎么...

zmeyuzjn

zmeyuzjn1#

consecutive_idrleiddplyr版本,它来自data.table。您可以按最接近的较低偶数分组,然后使用consecutive_id

library(dplyr) #1.1.0+
df <- data.frame(year = rep(2002:2005, each = 3))
df %>%
  mutate(ID = consecutive_id(2 * floor(year / 2)))
#    year ID
# 1  2002  1
# 2  2002  1
# 3  2002  1
# 4  2003  1
# 5  2003  1
# 6  2003  1
# 7  2004  2
# 8  2004  2
# 9  2004  2
# 10 2005  2
# 11 2005  2
# 12 2005  2

相关问题