Если вы можете создать файл data.frame со столбцами даты и температуры, аналогично моему фиктивному набору данных ниже, вы можете легко использовать пакеты dplyr и lubridate для получения месячных и годовых значений.
ДобавитьСтолбцы месяца и года в df с использованием функции мутирования dplyr и lubridates функций месяца и года
library(lubridate)
library(dplyr)
df <- data.frame(date = seq(from = ymd("2017-01-01"), to = ymd("2018-12-31"), length.out = 730),
temp = rnorm(n = 730, mean = 23, sd = 12))
Добавление столбцов месяца и года к df с использованием функции мутирования dplyr и функций месяца и года lubridate
df <- df %>% mutate(Month = month(date), Year = year(date))
Первые шесть строк df:
# date temp Month Year
# 2017-01-01 17.13885 1 2017
# 2017-01-02 34.23553 1 2017
# 2017-01-03 10.25110 1 2017
# 2017-01-04 11.19415 1 2017
# 2017-01-05 28.09097 1 2017
# 2017-01-06 17.58424 1 2017
Месячные средние значения можно получить с помощью функции group_by dplyr, чтобы сгруппировать data.frame по месяцам и годам, а также функцию суммирования для вычисления средних.
monthly_summaries <- df %>% group_by(Year, Month) %>%
summarise(mean_temp = mean(temp))
Вот первые 6 строк в файле month_summaries data.frame
# Year Month mean_temp
# 2017 1 22.1
# 2017 2 24.6
# 2017 3 20.5
# 2017 4 25.7
# 2017 5 21.3
# 2017 6 23.4
Аналогично, чтобы получить среднегодовые значения, используя функцию group_by для группировки по годам, и функцию суммирования для вычислениягодовой означает.
yearly_summaries <- df %>% group_by(Year) %>%
summarise(mean_temp = mean(temp))
А вот данные ежегодных сводок. Рамка:
#Year mean_temp
# 2017 23.0
# 2018 23.1
(илиЕсли вы не хотите добавлять столбцы «Месяц» и «Год» в свой файл data.frame, вы можете получить тот же вывод, используя следующий код:
monthly_summaries <- df %>% group_by(Year = year(date), Month = month(date)) %>%
summarise(mean = mean(temp))
yearly_summaries <- df %>% group_by(Month = month(date)) %>%
summarise(mean = mean(temp))
)