将日期转换为年季度格式

Ale*_*lex 3 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)
}
Run Code Online (Sandbox Code Playgroud)

然而,这是非常缓慢的。有没有更快的方法来做到这一点?

Jos*_*ich 5

您可以yearqtr在 zoo 包中使用。

> as.yearqtr(Sys.Date())
[1] "2012 Q4"
Run Code Online (Sandbox Code Playgroud)

  • @Alex:该问题的最后一个答案告诉您如何继续。[如何检查对象类敏感的 R 中函数的代码](http://stackoverflow.com/q/1439348/271616)(在我之前的链接中的一个答案中链接到)的答案也是非常好。 (2认同)