Gelegentlich möchten Sie möglicherweise tägliche Daten zu wöchentlichen, monatlichen oder jährlichen Daten in R zusammenfassen.

In diesem Tutorial wird erklärt, wie dies mit den Paketen lubridate und dplyr einfach möglich ist.

Beispiel: Aggregieren Sie die täglichen Daten in R

Angenommen, wir haben das folgende Dataframe in R, der den täglichen Verkauf eines Artikels über 100 aufeinanderfolgende Tage anzeigt:

#Machen Sie dieses Beispiel reproduzierbar
set.seed(1)

# Dataframe erstellen
df <- data.frame(date = as.Date("2020-12-01") + 0:99,
                 sales = runif(100, 20, 50))

# Die ersten sechs Zeilen anzeigen
head(df)

        date    sales
1 2020-12-01 27.96526
2 2020-12-02 31.16372
3 2020-12-03 37.18560
4 2020-12-04 47.24623
5 2020-12-05 26.05046
6 2020-12-06 46.95169

Um diese Daten zu aggregieren, können wir die Funktion floor_date() aus dem lubridate-Paket verwenden, die die folgende Syntax verwendet:

floor_date(x, unit)

wo:

  • x: Ein Vektor von Datumsobjekten.
  • Einheit: Eine Zeiteinheit, auf die gerundet werden soll. Zu den Optionen gehören Sekunde, Minute, Stunde, Tag, Woche, Monat, Zweimonat, Quartal, Halbjahr und Jahr.

Die folgenden Code-Schnipsel zeigen, wie diese Funktion zusammen mit den group_by()- und summarize()-Funktionen aus dem dplyr Paket nutzen können, um den mittleren Umsatz pro Woche, Monat und Jahr zu finden:

Mittlerer Umsatz pro Woche

library(lubridate)
library(dplyr)

#Runde Daten ab bis zur Woche
df$week <- floor_date(df$date, "week")

#Finden Sie den durchschnittlichen Umsatz pro Woche
df %>%
  group_by(week) %>%
  summarize(mean = mean(sales))

# A tibble: 15 x 2
   week        mean

 1 2020-11-29  33.9
 2 2020-12-06  35.3
 3 2020-12-13  39.0
 4 2020-12-20  34.4
 5 2020-12-27  33.6
 6 2021-01-03  35.9
 7 2021-01-10  37.8
 8 2021-01-17  36.8
 9 2021-01-24  32.8
10 2021-01-31  33.9
11 2021-02-07  34.1
12 2021-02-14  41.6
13 2021-02-21  31.8
14 2021-02-28  35.2
15 2021-03-07  37.1

Mittlerer Umsatz pro Monat

library(lubridate)
library(dplyr)

#Runde Daten ab bis zum Monat
df$month <- floor_date(df$date, "month")

#Finden der durchschnittliche Verkäufe pro Monat
df %>%
  group_by(month) %>%
  summarize(mean = mean(sales))

# A tibble: 4 x 2
  month       mean

1 2020-12-01  35.3
2 2021-01-01  35.6
3 2021-02-01  35.2
4 2021-03-01  37.0

Mittlerer Umsatz pro Jahr

library(lubridate)
library(dplyr)

#Runde Daten ab bis aufs Jahr
df$year <- floor_date(df$date, "year")

#Finden der durchschnittliche Verkäufe pro Jahr
df %>%
  group_by(year) %>%
  summarize(mean = mean(sales))

# A tibble: 2 x 2
  year        mean

1 2020-01-01  35.3
2 2021-01-01  35.7

Beachten Sie, dass wir uns für die Aggregation nach dem Mittelwert entschieden haben, aber wir können jede beliebige zusammenfassende Statistik verwenden, die wir möchten, wie z. B. den Median, den Modus, das Maximum, das Minimum usw.

Zusätzliche Ressourcen

So berechnen Sie den Mittelwert nach Gruppe in R
So berechnen Sie kumulative Summen in R
So zeichnen Sie eine Zeitreihe in R

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: