Obliczanie średnich godzinowych z wieloletnich okresów
Mam zestaw danych wypełniony średnią prędkością wiatru na godzinę przez wiele lat. Chciałbym stworzyć „średni rok”, w którym dla każdej godziny obliczana jest średnia prędkość wiatru dla tej godziny przez wiele lat. Jak mogę to zrobić bez ciągłego zapętlania zestawu danych? W idealnej sytuacji chciałbym po prostu przejrzeć dane raz, wyodrębniając dla każdego wiersza odpowiedni miesiąc, dzień i godzinę oraz dodając prędkość wiatru z tego wiersza do prawego wiersza w ramce danych, gdzie agregaty dla każdego miesiąca, dnia i godzina jest zebrana. Czy można to zrobić bez wyodrębniania miesiąca, dnia i godziny, a następnie zapętlania kompletnych danych średniego roku. Ramka, aby znaleźć odpowiedni wiersz?
Niektóre przykładowe dane:
<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>
Które chciałbym agregować w ramce danych w następujący sposób:
<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>
Stamtąd mogę kontynuować obliczanie średnich itp. Prawdopodobnie przeoczyłem jakieś polecenie, ale jaka byłaby właściwa składnia dla czegoś takiego (w pseudokodzie):
<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>
Czy jakoś tak. Pomoc jest doceniana!