假设您有以下时间序列。每月一次
require(forecast)
a<-ts(seq(1:50),frequency = 12)
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1 1 2 3 4 5 6 7 8 9 10 11 12
2 13 14 15 16 17 18 19 20 21 22 23 24
3 25 26 27 28 29 30 31 32 33 34 35 36
4 37 38 39 40 41 42 43 44 45 46 47 48
5 49 50
我想获取每个数据点的月份。这将是一个长度为 50 的向量,即 (Jan, Feb, ..., Mar)
> names(a)
NULL
我也尝试过 colnames。但没有运气。有什么建议吗?
最好!
最佳答案
1) 月份名称试试这个:
> month.abb[cycle(a)]
[1] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
[13] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
[25] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
[37] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
[49] "Jan" "Feb"
2)yearmon如果真正想要的是年份和月份,那么这会给出动物园“yearmon”
类结果:
library(zoo)
a <- ts(1:50, start = 2000, freq = 12)
as.yearmon(time(a))
3) Date 或者如果我们想要 "Date"
类以每月的第一天作为日期:
as.Date(as.yearmon(time(a)))
或本月最后一天:
as.Date(as.yearmon(time(a)), frac = 1)
更新添加了 (2) 和 (3)。
关于R:获取 TS 对象中的月份名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33157003/