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.

Foi útil?

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).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top