按日期范围分组

Wil*_*ips 5 r date

这似乎是一项简单的任务,但我在执行它时遇到了困难,并且找到了如何在R中完成它的示例.

我有一个大约75K记录的数据框.一个领域有日期,可以追溯到大约11年.我已经使用以下代码去除小时分钟秒,所以我只有一个月 - 一天

 dat$date=round.POSIXt(dat$date,units="day")
Run Code Online (Sandbox Code Playgroud)

我现在正在尝试根据日期创建一个新的字段"FiscalYear",如果日期是在2008-07-01和2009-06-30之间,那么它将在2009-07-01和2010之间分配给... 06-30被分配到2010财年等......

我一直在尝试的方法是使用ifelse> = && <=来设置日期范围,但这不起作用.有什么想法吗?

Jos*_*ien 8

基本上,本说.这是一个在实践中看起来像什么的例子.(我使用了一个Date类对象,因为听起来你不需要小时/分钟/秒信息.)

date <- seq(from = as.Date("2010/5/30"), by="week", length=10) ## Example data

cuts <- seq(from = as.Date("2000/7/1"), by="year", length=13) 
labs <- paste0("FY", 1:12)

cut(date, breaks = cuts, labels = labs)
#  [1] FY10 FY10 FY10 FY10 FY10 FY11 FY11 FY11 FY11 FY11
# Levels: FY1 FY2 FY3 FY4 FY5 FY6 FY7 FY8 FY9 FY10 FY11 FY12
Run Code Online (Sandbox Code Playgroud)