当基础时间序列是每月频率时,如何从时间序列索引获得年数?

时间:2011-08-10 10:59:11

标签: r plot time-series

我想从时间序列索引中提取年份(基础时间序列是每月频率)。我想这样做的原因是创建一个年轴,例如

plot(myts)
axis(1, at = year(time(myts)), labels = FALSE)
# note I know 'year()' does not work :)

因为如果我只绘制它,R任意(?)创建一个时间轴。通常它是一个两年甚至五年的轴,这有时是不合适的。

tsp(myts) 
[1] 1966.000 1974.917   12.000

2 个答案:

答案 0 :(得分:2)

我找到了一个自己的解决方案。也许这也有助于其他人。此外,我认为它不是太聪明......所以我期待着你的建议。

 axis(1, at = start(time(myts))[1]:end(time(myts))[1], labels = TRUE)
编辑:找到了更优雅的解决方案:

require(zoo)
x <- as.yearqtr("1991 Q1")
format.Date(x,"%Y")

根据@matty T痛,它也适用于ts(见评论)。

答案 1 :(得分:0)

我不熟悉您的数据,但如果是时间序列类(ts),那么您可以使用窗口功能:

window(myts,start="*beginyear*",end="*endyear*")

如果你不能这样做,也许你可以在这里使用一些建议:

http://r.789695.n4.nabble.com/Year-and-Month-extraction-from-Date-object-td904011.html

马特