Direkt zum Hauptinhalt springen
eLearner.app
Modul 3 · Lektion 2 von 26/10 im Kurs~15 min
Lektionen des Moduls (2/2)

Exploration und Aggregation

R wurde in erster Linie als statistische Umgebung entwickelt. Dementsprechend bietet es zahlreiche native Funktionen zur Analyse, Zusammenfassung und zum Verständnis der Verteilung von Daten in Vektoren oder Tabellen.

Statistische Basisfunktionen

R ermöglicht es, die wichtigsten Lage- und Streuungsmaße auf numerischen Vektoren sehr einfach zu berechnen:

  • mean(x): Berechnet das arithmetische Mittel der Elemente.
  • median(x): Berechnet den Median (den Zentralwert).
  • sd(x): Berechnet die Standardabweichung (Maß für die Streuung der Daten).
  • min(x) und max(x): Geben den Minimal- bzw. Maximalwert zurück.
Code
values <- c(10, 12, 15, 18, 20, 22)

avg <- mean(values)
dispersion <- sd(values)

cat("Mittelwert:", avg, "- Std. Abw.:", round(dispersion, 2), "\n")

Umgang mit fehlenden Werten (NA)

In der Realität enthalten Datensätze oft fehlende Werte, die in R durch den speziellen Wert NA (Not Available) dargestellt werden.

Wenn Sie versuchen, den Mittelwert oder ein anderes Aggregat auf einem Vektor zu berechnen, der auch nur ein einzelnes NA enthält, gibt R NA als Ergebnis zurück. Um fehlende Werte zu ignorieren, müssen Sie das logische Argument na.rm = TRUE (NA remove) übergeben:

Code
temperatures <- c(18, 21, NA, 24, 19)

# Dies gibt NA zurück
print(mean(temperatures))

# Dies ignoriert das NA und berechnet den Wert für die gültigen Elemente
print(mean(temperatures, na.rm = TRUE))

Globale Zusammenfassung mit summary()

Die Funktion summary() ist ein leistungsstarkes Werkzeug, das einen vollständigen statistischen Überblick über einen Vektor oder einen ganzen Data Frame bietet und Minimum, 1. Quartil, Median, Mittelwert, 3. Quartil und Maximum anzeigt:

Code
prices <- c(5, 10, 15, 20, 100)
print(summary(prices))

Datenaggregation mit aggregate

Beim Arbeiten mit Data Frames möchte man häufig zusammenfassende Statistiken (wie Mittelwert oder Summe) für Gruppen oder Kategorien berechnen. Die Funktion aggregate() in R vereinfacht diesen Prozess:

Code
df <- data.frame(
  department = c("HR", "IT", "HR", "IT"),
  salary = c(3000, 4500, 3200, 4800)
)

# Berechnet das durchschnittliche Gehalt pro Abteilung
avg_salaries <- aggregate(salary ~ department, data = df, FUN = mean)
print(avg_salaries)

Die Syntax salary ~ department bedeutet: „Analysiere die Variable salary basierend auf der Variable department“. Das Argument FUN = mean gibt an, dass wir das arithmetische Mittel für jede Gruppe berechnen möchten.

Erweitertes Filtern mit subset

Die Funktion subset() bietet eine intuitive und elegante Möglichkeit, Teilmengen von Zeilen und Spalten aus einem Data Frame zu extrahieren, ohne komplexe eckige Klammern verwenden zu müssen:

Code
employees <- data.frame(
  name = c("Alice", "Bob", "Charlie"),
  age = c(25, 34, 29),
  active = c(TRUE, FALSE, TRUE)
)

# Filtert nur aktive Mitarbeiter, die älter als 28 Jahre sind
active_employees <- subset(employees, active == TRUE & age > 28)

Probier es aus

Übung#r.m3.l2.e1
Versuche: 0Wird geladen…

Berechne für den gegebenen Vektor temperatures das arithmetische Mittel und speichere es in der Variable mean_temp. Berechne dann den Median und speichere ihn in median_temp.

Editor wird geladen…
Hinweis anzeigen

Verwende mean_temp <- mean(temperatures) und median_temp <- median(temperatures)

Lösung nach 3 Versuchen verfügbar

Übung#r.m3.l2.e2
Versuche: 0Wird geladen…

Berechne für den gegebenen Vektor scores, der einen NA-Wert enthält, die Standardabweichung unter Ausschluss fehlender Werte und speichere sie in der Variable sd_scores.

Editor wird geladen…
Hinweis anzeigen

Verwende die Funktion sd() mit dem Argument na.rm = TRUE: sd_scores <- sd(scores, na.rm = TRUE)

Lösung nach 3 Versuchen verfügbar

Übung#r.m3.l2.e3
Versuche: 0Wird geladen…

Erstelle für den gegebenen Data Frame df eine statistische Zusammenfassung (summary) der Spalte values und speichere sie in der Variable stats_summary.

Editor wird geladen…
Hinweis anzeigen

Extrahiere die Spalte mit dem Operator $ und übergib sie an summary(): stats_summary <- summary(df$values)

Lösung nach 3 Versuchen verfügbar

Übung#r.m3.l2.e4
Versuche: 0Wird geladen…

Verwende für den gegebenen Data Frame sales die Funktion aggregate(), um die Summe (FUN = sum) der Spalte revenue gruppiert nach der Spalte region zu berechnen. Speichere das Ergebnis in der Variable region_sales.

Editor wird geladen…
Hinweis anzeigen

Verwende: region_sales <- aggregate(revenue ~ region, data = sales, FUN = sum)

Lösung nach 3 Versuchen verfügbar

Übung#r.m3.l2.e5
Versuche: 0Wird geladen…

Verwende für den gegebenen Data Frame products die Funktion subset(), um nur die Produkte zu filtern, die zur Kategorie 'Electronics' (category == 'Electronics') gehören und einen Preis über 100 (price > 100) haben. Speichere das Ergebnis in der Variable expensive_electronics.

Editor wird geladen…
Hinweis anzeigen

Verwende: expensive_electronics <- subset(products, category == 'Electronics' & price > 100)

Lösung nach 3 Versuchen verfügbar