Lektionen des Moduls (2/2)
Mutationen und Aggregationen
Neben dem Auswählen und Filtern bietet dplyr leistungsstarke Funktionen zur Erstellung neuer berechneter Spalten und zur Zusammenfassung von Daten durch Aggregation in Gruppen.
Neue Spalten erstellen: mutate()
Das Verb mutate() ermöglicht es, neue Spalten zu berechnen oder bestehende Spalten zu ändern, während die ursprünglichen Spalten unverändert bleiben.
# Fügt eine Spalte 'double_salary' hinzu, die auf dem Wert von 'salary' basiert
df %>%
mutate(double_salary = salary * 2)
# Sie können mehrere Spalten gleichzeitig erstellen
df %>%
mutate(
total_cost = quantity * price,
tax = total_cost * 0.22
)
Gruppierung und Aggregation: group_by() und summarise()
Häufig erfordert die Datenanalyse die Berechnung von zusammenfassenden Statistiken (z. B. Mittelwert, Summe, Anzahl) für Zeilengruppen (z. B. das durchschnittliche Gehalt für jede Abteilung).
1. group_by()
Gruppiert den Data Frame basierend auf den Werten einer oder mehrerer Spalten. Dies ändert das visuelle Erscheinungsbild der Daten an sich nicht, signalisiert dplyr jedoch, dass die folgenden Operationen „Gruppe für Gruppe“ ausgeführt werden sollen.
2. summarise() (oder summarize())
Reduziert viele Zeilen auf eine einzige Zusammenfassungszeile durch Anwendung statistischer Funktionen wie mean(), sum(), min(), max() oder n() (die die Zeilen zählt).
# Berechnet das durchschnittliche Gehalt pro Abteilung
df %>%
group_by(department) %>%
summarise(mean_salary = mean(salary))
Wenn Sie zählen möchten, wie viele Datensätze zu jeder Gruppe gehören:
# Zählt, wie viele Mitarbeiter es pro Stadt gibt
df %>%
group_by(city) %>%
summarise(count = n())
Probier es aus
Esercizio 1: Berechnete Spalte erstellen
Erstelle für den gegebenen Data Frame df eine neue Spalte namens total_price, indem du die Spalte quantity mit der Spalte price multiplizierst, unter Verwendung von mutate(). Speichere das Ergebnis in df_new.
Hinweis anzeigen
Verwende mutate(total_price = quantity * price) innerhalb einer Pipeline für df.
Lösung nach 3 Versuchen verfügbar
Esercizio 2: Gruppieren und mit dem Mittelwert zusammenfassen
Berechne das arithmetische Mittel der Spalte salary, indem du die Datensätze nach der Spalte department gruppierst. Speichere die aggregierte Spalte unter dem Namen mean_salary und weise das Endergebnis df_grouped zu.
Hinweis anzeigen
Verwende df %>% group_by(department) %>% summarise(mean_salary = mean(salary))
Lösung nach 3 Versuchen verfügbar
Esercizio 3: Elemente pro Gruppe zählen
Zähle die Anzahl der Zeilen für jede Stadt (Spalte city). Weise die Anzahl der Variable count innerhalb von summarise() unter Verwendung der Funktion n() zu und speichere das Endergebnis in df_counts.
Hinweis anzeigen
Kombiniere group_by(city) mit summarise(count = n()) in einer Pipeline.
Lösung nach 3 Versuchen verfügbar
Esercizio 4: Mehrere Zusammenfassungen
Berechne den Minimalwert (min_price) und den Maximalwert (max_price) der Spalte price gruppiert nach der Spalte category. Speichere das Ergebnis in df_summary.
Hinweis anzeigen
Trennen Sie innerhalb von summarise() die Metriken min_price = min(price) und max_price = max(price) durch ein Komma.
Lösung nach 3 Versuchen verfügbar
Esercizio 5: Aggregation und Filter kombiniert
Schreibe eine Pipeline, die df nach der Spalte department gruppiert, das arithmetische Mittel von salary berechnet und in der neuen Spalte avg_salary mit mutate() speichert (Achtung: verwende mutate, nicht summarise, um alle Zeilen zu behalten), und schließlich filtert, um nur Datensätze zu behalten, bei denen salary strikt größer als avg_salary ist. Speichere das Ergebnis in res.
Hinweis anzeigen
Verwende df %>% group_by(department) %>% mutate(avg_salary = mean(salary)) %>% filter(salary > avg_salary)
Lösung nach 3 Versuchen verfügbar