在日期使用R cut功能

pss*_*guy 16 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
Run Code Online (Sandbox Code Playgroud)

matchdate是一个POSIXct类

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

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

Bra*_*sen 13

我的评论的一个例子.

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

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

labs <- paste(substr(levels(x),1,4), "/", 1:4, sep="")
x <- factor(x, labels = labs)
Run Code Online (Sandbox Code Playgroud)
?cut.POSIXct
Run Code Online (Sandbox Code Playgroud)

打破
切割点或数字的向量,给出要切入的间隔数或间隔指定,"sec","min","hour","day","DSTday","week"之一,"月","季度"或"年",可选地以整数和空格开头,或者后跟"s".(对于"日期"对象,仅允许使用"天","周","月","季度"和"年"的间隔规范.)


Bri*_*ggs 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="/"))
Run Code Online (Sandbox Code Playgroud)