Как сгруппировать данные по месяцам в 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

        dirty date
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 .

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *