Як групувати дані за місяцями в 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *