Как получить годы из индекса временного ряда, если базовый временной ряд имеет месячную частоту? - PullRequest
0 голосов
/ 10 августа 2011

Я хотел бы извлечь годы из индекса временного ряда (основной временной ряд имеет месячную частоту).Причина, по которой я хочу это сделать, заключается в создании годовой оси, например,

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

, потому что, если я просто нанесу ее на график, R произвольно (?) Создаст ось времени.Часто это ось в два или даже 5 лет, что иногда делает неуместным.

tsp(myts) 
[1] 1966.000 1974.917   12.000

Ответы [ 2 ]

2 голосов
/ 10 августа 2011

Я нашел собственное решение. Может быть, это помогает кому-то еще. Кроме того, я думаю, что это не слишком умно ... поэтому я с нетерпением жду ваших предложений.

 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 pain это также работает для ts (см. Комментарии).

0 голосов
/ 10 августа 2011

Я не знаком с вашими данными, но если это класс временного ряда (ts), вы можете использовать функцию window :

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

Если вы не можете сделать это, возможно, вы можете использовать некоторые из предложений здесь:

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

Matt

...