R Cálculo da janela deslizante da série r ZOO
-
23-09-2019 - |
Pergunta
Dado que eu tenho um conjunto de dados do zoológico, gostaria de executar uma operação deslizante contra ele, com o resultado sendo outro conjunto de dados do zoológico.
> x Y (09/24/09 08:00:13) 3.1 (09/24/09 08:05:13) 4.2 (09/24/09 08:10:13) 4.5 (09/24/09 08:15:13) 9.4 (09/24/09 08:20:13) 9.8 (09/24/09 08:25:13) 7.7 (09/24/09 08:30:13) 13.3 (09/24/09 08:35:13) 6.5 (09/24/09 08:40:13) 14.7 (09/24/09 08:45:13) 23.5 (09/24/09 08:50:13) 20.9 (09/24/09 08:55:13) 8.5
Meu objetivo é produzir uma média "suave", iterando a cada intervalo de tempo e obtendo a média para o conjunto de pontos y que são +/- 15 minutos do ponto atual.
Eu tenho um método de balde de média de trabalho, mas reduz a resolução dos dados. Eu não descobri como fazer subconjuntos relativos do zoológico com matemática da biblioteca, a janela deve ajudar, mas acessar o índice está sendo difícil.
Obrigado.
Solução
Usar rollmean
. Aqui está um exemplo:
x.Date <- as.Date(paste(2004, rep(1:4, 4:1), sample(1:28, 10), sep = "-"))
x <- zoo(rnorm(12), x.Date)
rollmean(x, 3)
No seu caso, você deseja atrasar seus dados depois de tomar a média, já que você significa em torno de um momento.
Por fim, você deve saber sobre o rollapply
Função no zoológico que pode fazer uma operação de rolamento em qualquer função (incluindo uma que você definir).