Jak grupować dane według tygodni w r (z przykładem)


Możesz użyć funkcji strftime() w bazie R z argumentem „ %V ”, aby pogrupować dane według tygodni w R.

Ta funkcja wykorzystuje następującą podstawową składnię:

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

Poniższy przykład pokazuje, jak w praktyce wykorzystać tę funkcję.

Przykład: grupuj dane według tygodni w R

Załóżmy, że mamy następującą ramkę danych w R, która pokazuje całkowitą sprzedaż towaru w różnych datach:

 #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

Możemy użyć poniższego kodu, aby dodać kolumnę wyświetlającą numer tygodnia dla każdej daty:

 #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

Uwaga : zgodnie z dokumentacją %V% oblicza liczby dat w następujący sposób: „numer tygodnia w roku (poniedziałek jako pierwszy dzień tygodnia) w postaci ułamka dziesiętnego [01,53]”. Jeżeli tydzień zawierający 1 stycznia ma cztery lub więcej dni w nowym roku, wówczas uważa się go za tydzień 1. W przeciwnym razie jest to ostatni tydzień poprzedniego roku, a tydzień następny jest tygodniem 1.”

Po utworzeniu tej nowej kolumny możemy pogrupować wartości na podstawie numeru tygodnia.

Na przykład możemy użyć poniższego kodu do obliczenia sumy sprzedaży pogrupowanej według tygodni:

 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

Z wyniku możemy zobaczyć:

  • Suma sprzedaży w pierwszym tygodniu wyniosła 22 .
  • Suma sprzedaży w tygodniu 6 wyniosła 22 .
  • Suma sprzedaży w tygodniu 7 wyniosła 23 .

I tak dalej.

Możemy również użyć innego miernika do agregacji danych.

Na przykład możemy użyć poniższego kodu do obliczenia średniej sprzedaży pogrupowanej według tygodni:

 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

Z wyniku możemy zobaczyć:

  • Średnia sprzedaż w pierwszym tygodniu wyniosła 11 .
  • Średnia sprzedaż w tygodniu 6 wyniosła 22 .
  • Średnia sprzedaż w tygodniu 7 wyniosła 23 .

I tak dalej.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:

Jak grupować dane według miesięcy wR
Jak wyodrębnić rok z daty w R
Jak wyodrębnić miesiąc z daty w R
Jak posortować ramkę danych według daty w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *