从特定月份开始的年份分组数据

时间:2019-07-11 08:54:59

标签: r dplyr

我有个大数据,叫做ddata。它的日期字段从2014年到2018年。我想按12个月的时间段(从特定月份开始,例如2014年4月至2015年3月,等等)对每个县的病例进行分组。

我写了给定的代码,仅执行日历年的结果。但我想在任何12个月内执行类似的结果,即从任何月份开始(例如,2014年4月至2015年3月,2015年4月至2016年3月,依此类推。)

  ddata <- ddata %>%
               select(ID, Disease, DateReported, County) %>%
               mutate(calendar_year = year(Date)) %>%
               mutate(month = month(DateReported)) %>%
               filter(calendar_year >=2014) %>%
               group_by(County, calendar_year) %>%
               summarize(cases = n()) %>%
               spread(calendar_year, cases)

1 个答案:

答案 0 :(得分:1)

您可以创建一个新列,例如,假设您要在四月开始

start_month <- 4
ddata <- ddata %>%
               select(ID, Disease, DateReported, County) %>%
               mutate(custom_year = ifelse(month(Date)>= start_month, year, year-1))
               filter(custom_year >=2014) %>%
               group_by(County, custom_year) %>%
               summarize(cases = n()) %>%
               spread(custom_year, cases)