Gegevens per week groeperen in r (met voorbeeld)
U kunt de strftime() -functie in basis R gebruiken met het argument “ %V ” om gegevens per week in R te groeperen.
Deze functie gebruikt de volgende basissyntaxis:
df$week_num <- strftime(df$date, format = " %V ")
Het volgende voorbeeld laat zien hoe u deze functie in de praktijk kunt gebruiken.
Voorbeeld: groepeer gegevens per week in R
Stel dat we het volgende gegevensframe in R hebben dat de totale verkoop van een artikel op verschillende datums weergeeft:
#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
We kunnen de volgende code gebruiken om een kolom toe te voegen die het weeknummer van elke datum weergeeft:
#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
Opmerking : volgens de documentatie berekent %V% datumnummers als volgt: „het weeknummer van het jaar (maandag als de eerste dag van de week) als decimaal [01,53].“ Als de week die 1 januari bevat vier of meer dagen in het nieuwe jaar heeft, wordt deze als week 1 beschouwd. Anders is het de laatste week van het voorgaande jaar en is de volgende week week 1.‘
Zodra we deze nieuwe kolom hebben aangemaakt, kunnen we de waarden groeperen op basis van weeknummer.
We kunnen bijvoorbeeld de volgende code gebruiken om de som van de verkopen te berekenen, gegroepeerd per week:
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
Uit het resultaat kunnen we zien:
- De som van de verkopen in week 1 was 22 .
- De som van de verkopen in week 6 was 22 .
- De som van de verkopen in week 7 was 23 .
Enzovoort.
We kunnen ook een andere metriek gebruiken om de gegevens samen te voegen.
We kunnen bijvoorbeeld de volgende code gebruiken om de gemiddelde omzet te berekenen, gegroepeerd per week:
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
Uit het resultaat kunnen we zien:
- De gemiddelde omzet in week 1 was 11 .
- De gemiddelde omzet in week 6 was 22 .
- De gemiddelde omzet in week 7 was 23 .
Enzovoort.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:
Hoe gegevens per maand te groeperen inR
Hoe jaar uit datum te extraheren in R
Hoe maand uit datum te extraheren in R
Hoe een dataframe op datum te sorteren in R