Расчет среднечасовых значений по многолетним временным рядам
У меня есть набор данных, заполненный средней скоростью ветра в час за несколько лет. Я хотел бы создать «средний год», в котором для каждого часа рассчитывается средняя скорость ветра за этот час за несколько лет. Как я могу сделать это, не перебирая бесконечный цикл по набору данных? В идеале я хотел бы просто циклически просмотреть данные один раз, извлекая для каждой строки правильный месяц, день и час и добавляя скорость ветра из этой строки в правую строку в кадре данных, где агрегируются значения для каждого месяца, дня и час собрал. Можно ли сделать это, не извлекая месяц, день и час, а затем циклически перебирая весь data.frame среднего года, чтобы найти правильную строку?
Некоторые примеры данных:
<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>
Который я хотел бы объединить в кадре данных, как это:
<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>
Оттуда я могу продолжать вычислять средние значения и т. Д. Я, вероятно, пропустил какую-то команду, но какой синтаксис был бы правильным для чего-то подобного (в псевдокоде):
<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>
Или что-то типа того. Помощь приветствуется!