Як групувати дані за тижнем у r (з прикладом)


Ви можете використовувати функцію strftime() у базовому R з аргументом « %V » для групування даних за тижнем у R.

Ця функція використовує такий базовий синтаксис:

 df$week_num <- strftime(df$date, format = " %V ")

У наступному прикладі показано, як використовувати цю функцію на практиці.

Приклад: згрупуйте дані за тижнем у R

Припустімо, що ми маємо наступний кадр даних у R, який показує загальні продажі товару на різні дати:

 #create data frame
df <- data. frame (date=as. Date (c('1/8/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-08 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

Ми можемо використати такий код, щоб додати стовпець, який відображає номер тижня кожної дати:

 #add column to show week number
df$week_num <- strftime(df$date, format = " %V ")

#view updated data frame
df

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

Примітка : згідно з документацією, %V% обчислює числа дат таким чином: «номер тижня року (понеділок як перший день тижня) у вигляді десяткової дроби [01,53]». Якщо тиждень, який містить 1 січня, має чотири або більше днів у новому році, тоді він вважається тижнем 1. В іншому випадку це останній тиждень попереднього року, а наступний тиждень є тижнем 1».

Після того, як ми створили цей новий стовпець, ми можемо згрупувати значення на основі номера тижня.

Наприклад, ми можемо використовувати такий код, щоб обчислити суму продажів, згрупованих за тижнями:

 library (dplyr)

#calculate sum of sales, grouped by week
df %>%
  group_by(week_num) %>%
  summarize(total_sales = sum(sales))

# A tibble: 6 x 2
  week_num total_sales
            
1 01 22
2 06 22
3 07 23
4 09 16
5 12 40

З результату ми бачимо:

  • Сума продажів за тиждень 1 становила 22 .
  • Сума продажів за тиждень 6 становила 22 .
  • Сума продажів за тиждень 7 становила 23 .

І так далі.

Ми також можемо використовувати інший показник для агрегування даних.

Наприклад, ми можемо використати такий код, щоб обчислити середні продажі, згруповані за тижнями:

 library (dplyr)

#calculate mean of sales, grouped by week
df %>%
  group_by(week_num) %>%
  summarize(mean_sales = mean(sales))

# A tibble: 5 x 2
  week_num mean_sales
           
1 01 11
2 06 22
3 07 23
4 09 16
5 12 20

З результату ми бачимо:

  • Середній обсяг продажів за тиждень 1 склав 11 .
  • Середній обсяг продажів за тиждень 6 становив 22 .
  • Середній обсяг продажів за тиждень 7 становив 23 .

І так далі.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в R:

Як групувати дані за місяцями в R
Як витягти рік із дати в R
Як витягти місяць із дати в R
Як відсортувати кадр даних за датою в R

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

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