R:特定日期之前按ID计数的天数

问题描述 投票:0回答:1

我有包含多列的数据框,最重要的是id和date。我想在R中创建另一列,该列将填充日期间隔的每一行(按ID)。这样的事情。

id  date 
1   12/31/2019
1   12/30/2019
2   12/26/2019
2   12/25/2019
2   12/24/2019
3   12/22/2019
3   12/21/2019
3   12/20/2019
3   12/19/2019
4   12/15/2019
4   12/14/2019
4   12/13/2019

使像这样

id  date        date count
1   12/31/2019  2
1   12/30/2019  1
2   12/26/2019  3
2   12/25/2019  2
2   12/24/2019  1
3   12/22/2019  4
3   12/21/2019  3
3   12/20/2019  2
3   12/19/2019  1
4   12/15/2019  3
4   12/14/2019  2
4   12/13/2019  1
r date intervals
1个回答
0
投票

一种dplyr的可能性可能是:

df %>%
 group_by(id) %>%
 mutate(date_count = dense_rank(as.Date(date, format = "%m/%d/%Y")))

      id date       date_count
   <int> <chr>           <int>
 1     1 12/31/2019          2
 2     1 12/30/2019          1
 3     2 12/26/2019          3
 4     2 12/25/2019          2
 5     2 12/24/2019          1
 6     3 12/22/2019          4
 7     3 12/21/2019          3
 8     3 12/20/2019          2
 9     3 12/19/2019          1
10     4 12/15/2019          3
11     4 12/14/2019          2
12     4 12/13/2019          1
© www.soinside.com 2019 - 2024. All rights reserved.