这似乎是一项简单的任务,但我很难执行它,也很难找到在R中如何完成它的示例。
我有一个包含大约75K条记录的数据框架。其中一个字段有日期,可以追溯到大约11年前。我使用下面的代码去掉了小时、分钟、秒,所以我只有年-月-日
dat$date=round.POSIXt(dat$date,units="day")我现在正在尝试创建一个基于日期的新字段"FiscalYear“,如果日期在2008-07-01和2009-06-30之间,它会被分配到2009-07-01和2010-06-30之间的FY09...then,它会被分配到FY10,依此类推。
我一直在尝试的方法是使用>= && <=来设置日期范围,但这不起作用。有什么想法吗?
发布于 2012-10-12 01:03:05
基本上,本所说的。这是一个在实践中看起来像什么的例子。(我使用了一个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 FY12https://stackoverflow.com/questions/12844585
复制相似问题