qui*_*git 2 sorting r date count
我有一个像下面这样的 R 数据框,其中包含每个用户和他们活动的天数列表。
User date_active
1 2018-08-27
1 2018-08-28
1 2018-08-29
1 2018-08-31
1 2018-09-01
2 2018-07-05
2 2018-07-06
2 2018-07-07
2 2018-07-08
2 2018-07-10
2 2018-07-11
2 2018-07-12
2 2018-07-20
Run Code Online (Sandbox Code Playgroud)
我想计算所有日期,直到间隔重新开始计数。对于上述数据,我的预期输出如下表所示。
User date_active
1 3
1 2
2 4
2 3
2 1
Run Code Online (Sandbox Code Playgroud)
我最初的猜测是使用该rank函数,difftime但我不确定如何获得结果。非常感激任何的帮助!
随着dplyr我们可以group_by User和天数时天差不等于1,我们再算上每个组中行的数量。
library(dplyr)
df %>%
group_by(User, days = c(0, cumsum(diff(date_active) != 1))) %>%
summarise(date_active = n()) %>%
select(-days)
# User date_active
# <int> <int>
#1 1 3
#2 1 2
#3 2 4
#4 2 3
#5 2 1
Run Code Online (Sandbox Code Playgroud)
这是假设您date_active是一流的Date,否则将其转换为Date第一个
df$date_active <- as.Date(df$date_active)
Run Code Online (Sandbox Code Playgroud)
创建分组变量是这里的关键。看
c(0, cumsum(diff(df$date_active) != 1))
# [1] 0 0 0 1 1 2 2 2 2 3 3 3 4
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
262 次 |
| 最近记录: |