如何将R日期范围拆分为季度基准期?

时间:2016-11-08 11:54:30

标签: r date

我想将每月的日期范围分为季度基准期。 我的日期变量是使用as.yearmonth构建的:

> data$DATES
jul. 2014 
ago. 2014
sep. 2014
...
...
jun. 2016
jul. 2016
ago. 2016
sep. 2016

我该怎么办?剪切功能与日期一起使用?我不想手动这样做。

2 个答案:

答案 0 :(得分:5)

Lubridate有四分之一功能。看看:

library(lubridate)
x <- ymd(c("2012-03-26", "2012-05-04", "2012-09-23", "2012-12-31"))
quarter(x)
quarter(x, with_year = TRUE)

然后你唯一需要做的就是整理你的日期格式,以便理解它们。

答案 1 :(得分:3)

假设到了月底,你的意思是来自动物园的"yearmon"课程,最后注意:

1)yearqtr 转换为"yearqtr"课程(也在动物园中,如"yearmon")并将其拆分。除了您已经使用的包之外,不需要其他包。

split(data, as.yearqtr(data$DATES))

或者如果你想聚合它,而不是拆分它:

aggregate(values ~ DATES, transform(data, DATES = as.yearqtr(DATES)), mean)

2)剪切如果您想使用cut,那么:

split(data, cut(as.Date(data$DATES), "quarter"))

注意:以可重复的形式测试数据:

library(zoo)
data <- data.frame(DATES = as.yearmon(2014) + 0:11/12, values = 1:12) # test data