R:在TS对象中获取月份的名称

don*_*nte 2 r date

假设您有以下时间序列。每月一次

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 
Run Code Online (Sandbox Code Playgroud)

我想获取每个数据点的月份。那将是一个长度为50的向量,它将具有(Jan,Feb,...,Mar)

> names(a)
 NULL
Run Code Online (Sandbox Code Playgroud)

我也尝试过姓氏。但是没有运气。有什么建议吗?

最好!

G. *_*eck 5

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"
Run Code Online (Sandbox Code Playgroud)

2)yearmon如果真正想要的是年和月,那么这将给出一个动物园"yearmon"课程结果:

library(zoo)
a <- ts(1:50, start = 2000, freq = 12)
as.yearmon(time(a))
Run Code Online (Sandbox Code Playgroud)

3)日期,或者如果我们要"Date"以每月的第一天为日期的课程:

as.Date(as.yearmon(time(a)))
Run Code Online (Sandbox Code Playgroud)

或该月的最后一天:

as.Date(as.yearmon(time(a)), frac = 1)
Run Code Online (Sandbox Code Playgroud)

更新 添加了(2)和(3)。