3

形式の日付がたくさんあり、それらを年の四半期である形式yyyy-mm-ddに変換したいと思います(したがって、月 1、2、3 は q=1 にマップされ、4、5、6 は q にマップされます) =2 など)。これを実現するために、次の関数を使用します。yyyy-qqq

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)
}

ただし、これは非常に遅いです。これを行うより速い方法はありますか?

4

1 に答える 1

5

yearqtrZooパッケージで使用できます。

> as.yearqtr(Sys.Date())
[1] "2012 Q4"
于 2012-10-12T18:21:23.977 に答える