在R中,可以将POSIXlt日期时间对象格式化为月份:
有没有办法用季节或3个月的组(DJF,MAM,JJA,SON)完成相同的操作?这些分类在气候学和生态科学中非常常见,能够快速格式化它们将非常有用。显然DJF跨越2年,但出于此问题的目的,这并不重要-只需始终将它们推入任一年份即可(或者最好能够指定它们应放在哪一年)。
我正在将输出作为“by()”的索引使用,因此输出格式并不重要,只要每年/季节是唯一的即可。
编辑:数据示例:
应该得到的结果是:
format(Sys.time(), format='%Y-%m')
有没有办法用季节或3个月的组(DJF,MAM,JJA,SON)完成相同的操作?这些分类在气候学和生态科学中非常常见,能够快速格式化它们将非常有用。显然DJF跨越2年,但出于此问题的目的,这并不重要-只需始终将它们推入任一年份即可(或者最好能够指定它们应放在哪一年)。
我正在将输出作为“by()”的索引使用,因此输出格式并不重要,只要每年/季节是唯一的即可。
编辑:数据示例:
dates <- Sys.Date()+seq(1,380, by=35)
dates <- structure(c(16277, 16312, 16347, 16382, 16417, 16452, 16487,
16522, 16557, 16592, 16627), class = "Date")
dates
#[1] "2014-07-26" "2014-08-30" "2014-10-04" "2014-11-08" "2014-12-13"
# "2015-01-17" "2015-02-21" "2015-03-28" "2015-05-02" "2015-06-06" "2015-07-11"
应该得到的结果是:
c("2014-JJA", "2014-JJA", "2014-SON", "2014-SON", "2015-DJF", "2015-DJF",
"2015-DJF", "2015-MAM", "2015-MAM", "2015-JJA", "2015-JJA")
但是“2015-DJF”也可能是“2014-DJF”。另外,输出的形式并不重要 - “2104q4”或“201404”也可以。
library(zoo); format(as.yearqtr(as.yearmon(Sys.time())+1/12))
。如果您想要不同的格式,可以使用格式字符串,例如format(as.yearqtr(as.yearmon(Sys.time())+1/12), "%Y-%q")
。 - G. Grothendieck