Как сгруппировать данные по месяцам в R (с примером)


Вы можете использовать функцию floor_date() из пакета lubridate в R, чтобы быстро сгруппировать данные по месяцам.

Эта функция использует следующий базовый синтаксис:

library (tidyverse)

df %>% 
 group_by(month = lubridate::floor_date(date_column, 'month')) %>%
 summarize(sum = sum(value_column))

В следующем примере показано, как использовать эту функцию на практике.

Пример: группировка данных по месяцам в R

Предположим, у нас есть следующий фрейм данных в R, который показывает общий объем продаж некоторого товара в разные даты:

#create data frame 
df <- data.frame(date=as. Date (c('1/4/2022', '1/9/2022', '2/10/2022', '2/15/2022',
 '3/5/2022', '3/22/2022', '3/27/2022'), '%m/%d/%Y'),
 sales=c(8, 14, 22, 23, 16, 17, 23))

#view data frame
df

 date sales
1 2022-01-04 8
2 2022-01-09 14
3 2022-02-10 22
4 2022-02-15 23
5 2022-03-05 16
6 2022-03-22 17
7 2022-03-27 23

Мы можем использовать следующий код для расчета суммы продаж, сгруппированных по месяцам:

library (tidyverse)

#group data by month and sum sales
df %>% 
 group_by(month = lubridate::floor_date(date, 'month')) %>%
 summarize(sum_of_sales = sum(sales))

# A tibble: 3 x 2
 month sum_of_sales

1 2022-01-01 22
2 2022-02-01 45
3 2022-03-01 56

Из вывода мы видим:

  • Всего в январе было совершено 22 продажи.
  • Всего в феврале было совершено 45 продаж.
  • Всего в марте было совершено 56 продаж.

Мы также можем агрегировать данные, используя какую-либо другую метрику.

Например, мы можем рассчитать максимальное количество продаж за один день, сгруппированное по месяцам:

library (tidyverse)

#group data by month and find max sales
df %>% 
 group_by(month = lubridate::floor_date(date, 'month')) %>%
 summarize(max_of_sales = max(sales))

# A tibble: 3 x 2
 month max_of_sales

1 2022-01-01 14
2 2022-02-01 23
3 2022-03-01 23

Из вывода мы видим:

  • Максимальный объем продаж за один день в январе составил 14 .
  • Максимальный объем продаж за один день в феврале составил 23 .
  • Максимальный объем продаж за один день в марте составил 23 .

Не стесняйтесь использовать любую метрику, которую вы хотите, в функции summ() .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:

Как извлечь год из даты в R
Как извлечь месяц из даты в R
Как отсортировать фрейм данных по дате в R
Как преобразовать фактор в дату в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.