我想将每月的日期范围分为季度基准期。 我的日期变量是使用as.yearmonth构建的:
> data$DATES
jul. 2014
ago. 2014
sep. 2014
...
...
jun. 2016
jul. 2016
ago. 2016
sep. 2016
我该怎么办?剪切功能与日期一起使用?我不想手动这样做。
答案 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