在日期使用R cut功能

时间:2011-09-06 19:14:38

标签: r date

我有一个数据框可以参加体育赛事

Crowd    matchDate
2345      1993-01-26
4567      1993-08-01
8888      1994-03-02
1298      1994-11-07
9876      1995-09-01 etc

1237      2011-09-09

matchdate是一个POSIXct类

我希望能够根据日期创建季节因素,例如每个季节从8月1日到7月31日,例如因子1992/3将包括日期1992-08-01至1993-07-31

理想情况下,我可以申请多项分析,而不一定在一年中有相同的开始和结束日期

2 个答案:

答案 0 :(得分:12)

我的评论的一个例子。

x <- as.Date(1:1000, origin = "2000-01-01")
x <- cut(x, breaks = "quarter") 

如有必要,请随意重新标记。

labs <- paste(substr(levels(x),1,4), "/", 1:4, sep="")
x <- factor(x, labels = labs)

?cut.POSIXct
  

<强>符
  切割点或数字的矢量,给出要切入的间隔的数量或间隔规格,1   “sec”,“min”,“hour”,“day”,“DSTday”,“week”,“month”,“quarter”   或“年”,可选地以整数和空格开头,或者后跟   用“s”。 (对于“日期”对象,仅使用“日期”的间隔规范,   允许“周”,“月”,“季度”和“年”。)

答案 1 :(得分:10)

如果您的问题与自动生成中断和标签的方式有关,可能会有所帮助

DF <- data.frame(matchDate = as.POSIXct(as.Date(sample(5000,100,replace=TRUE), origin="1993-01-01")))

years <- 1992:2011
DF$season <- cut(DF$matchDate, 
  breaks=as.POSIXct(paste(years,"-08-01",sep="")),
  labels=paste(years[-length(years)],years[-length(years)]+1,sep="/"))