Calculando médias por hora a partir de uma série temporal de vários anos
Eu tenho um conjunto de dados preenchido com a velocidade média do vento por hora durante vários anos. Eu gostaria de criar um 'ano médio', no qual, para cada hora, a velocidade média do vento para aquela hora ao longo de vários anos é calculada. Como posso fazer isso sem loop infinitamente através do conjunto de dados? Idealmente, gostaria de percorrer os dados uma vez, extraindo para cada linha o mês, dia e hora corretos e adicionando a velocidade do vento daquela linha à linha direita em um dataframe onde os agregados de cada mês, dia e hora estão reunidas. É possível fazer isso sem extrair o mês, o dia e a hora e, em seguida, fazer o loop do data.frame completo do ano médio para encontrar a linha correta?
Alguns dados de exemplo:
<code>data.multipleyears <- data.frame( DATETIME = c("2001-01-01 01:00:00", "2001-05-03 09:00:00", "2007-01-01 01:00:00", "2008-02-29 12:00:00"), Windspeed = c(10, 5, 8, 3) ) </code>
Que eu gostaria de agregar em um dataframe como este:
<code>average.year <- data.frame( DATETIME = c("01-01 00:00:00", "01-01 01:00:00", ..., "12-31 23:00:00") Aggregate.Windspeed = (100, 80, ...) ) </code>
De lá, eu posso continuar calculando as médias, etc. Eu provavelmente esqueci de algum comando, mas qual seria a sintaxe certa para algo assim (em pseudocódigo):
<code> for(i in 1:nrow(data.multipleyears) { average.year$Aggregate.Windspeed[ where average.year$DATETIME(month, day, hour) == data.multipleyears$DATETIME[i](month, day, hour)] <- average.year$Aggregate.Windspeed + data.multipleyears$Windspeed[i] } </code>
Ou algo assim. Ajuda é apreciada!