2017-08-07 144 views
1

我有数据从2016-01-01到2017-07-30。我想每三个月对数据进行一次group_by数据汇总。很难显示整个数据,因为它不适合这里。我通常使用lubridatedplyr进行数据操作,但我无法弄清楚如何每三个月汇总一次数据。我试图完成的伪代码如下:R:按数据每N个月分组

df$month <- month(as.Date(df$date)) 
df$year <- year(as.Date(df$date)) 
df %>% group_by(month + "3 Months", year) %>% summarise(n = sum(pageviews)) 

您能否给我建议一个简单的方法来做到这一点?我知道这很简单,使用dplyr。提前致谢。

+0

难道你没有功能让宿舍得到清理吗? –

+1

是的,在lubridate中有一个函数,并感谢您指出。但是,如果我想尝试不同的月份或日期,该怎么办?我正在寻找更广泛的答案。 –

+0

尝试'df $ month_group < - (df $ month-reference_month)%/%3'和group by month_group –

回答

2
df %>% 
    mutate(dategroup = lubridate::floor_date(date, "2 months")) %>% 
    group_by(dategroup) %>% ... 

floor_dateceiling_date,和round_date作为参数接受:

的字符串指定的时间单位或一个单位 的倍数被舍入到。有效的基本单位是第二,分钟,小时,天, 周,月,双月,季度,半年或年份。任意唯一 也支持在句点构造函数中使用英文缩写。 从 v1.6.0开始支持舍入到多个单元(除周)。

+0

Voo !!非常感谢。你让我的生活变得如此简单。 –