使用R表示年/ qtr格式的数据

时间:2012-10-12 18:20:49

标签: r date date-format

我有一堆格式为yyyy-mm-dd的日期,我想将它们转换为yyyy-q格式,其中qq是一年中的四分之一(所以第1个月) ,2,3,映射到q = 1和4,5,6映射到q = 2等)。我使用以下函数来完成此任务:

get_month <- function(d) { return(as.numeric(format(d, "%m")))}
get_qtr <- function(d) {
f <- function(m) {
    if (m %in% c(1,2,3)) { return(1) }
    else if (m %in% c(4,5,6)) { return(2) }
    else if (m %in% c(7,8,9)) { return(3) }
    else if (m %in% c(10,11,12)) { return(4) }
}
m <- get_month(d)
r <- sapply(m, f)
return(r)
}
然而,这是非常缓慢的。有没有更快的方法呢?

1 个答案:

答案 0 :(得分:4)

您可以在动物园包中使用yearqtr

> as.yearqtr(Sys.Date())
[1] "2012 Q4"