2015-10-15 27 views
2

想象一下,您有以下時間序列。每月一個R:取TS對象中的月份名稱

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的矢量,這將有(1月,2月,...,3月)

> names(a) 
NULL 

我也嘗試colnames。但沒有運氣。任何建議?

最好!

回答

3

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"類與本月的第一個日期作爲日期:

as.Date(as.yearmon(time(a))) 

或最後一個月的:

as.Date(as.yearmon(time(a)), frac = 1) 

UPDATE添加(2)和(3)。

+0

什麼是破解! :)。然後我使用as.Date()來更改格式。謝謝! – donpresente

+0

如果這是你想要的,而不僅僅是一個月,那麼我已經添加了幾個選項。 –

+0

瓜!超級完整的答案。謝謝你,兄弟! – donpresente