2015-07-22 3 views
0

У меня есть зоопарк obj, подобный этому colled z.rollapply mean 5 предидущих лет

> z["2013-12",1] 
     Allerona 

2013-12-01 0.0 2013-12-02 0.0 2013-12-03 0.0 2013-12-04 0.0 2013-12-05 0.2 2013-12-06 0.0 2013-12-07 0.0 2013-12-08 0.2 2013-12-09 0.0 ....

Он хранит ежедневные значения осадков.

Я могу вычислить накопление 5-дней с использованием rollapply usingi:

m=rollapply(z, width=3, FUN=sum, by=1, by.column=TRUE, fill=NA, align="right") 

Это выглядит нормально

> m["2013-12",1] Allerona 2013-12-01 0.0 2013-12-02 0.0 2013-12-03 0.0 2013-12-04 0.0 2013-12-05 0.2 2013-12-06 0.2 2013-12-07 0.2 2013-12-08 0.2 2013-12-09 0.2 ...

Как рассчитать для каждого дня themean в течение 5-лет до?

Благодаря

ответ

0
SMA (x, n=5*365) 

не делает трюк?

+1

Я не знаю такой функции. В базе R нет ни одного подарка. Где я могу найти его? Спасибо –

+0

Это в пакете TTR. Я предположил, что если вы используете зоопарк, вероятно, вы также используете XTS и TTR. В любом случае вы можете установить xts и получить нагрузки функций Time Series –

+0

Я пробовал. Я получаю: '> SMA (m, n = 5 * 365) Ошибка в runSum (x, n): не хватает значений не-NA' –

0

Я отсортировал свою проблему. Решение состояло в том, чтобы использовать список в параметре ширины rollapply. здесь ниже код:

mean5year=rollapply(as.zoo(m), list(-365*5:1), function(x) {mean(x,na.rm = TRUE)},fill=NA)

где

list(-365*5:1)

занимает один и тот же день, но в предыдущие 5 лет. Я также должен использовать среднее значение с na.rm = TRUE для вычисления среднего значения также, если NA находятся в последовательности

Смежные вопросы