我有包含多列的数据框,最重要的是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
一种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