Kurs
Wenn es darum geht, numerische Daten in R zusammenzufassen, ist die Berechnung des Durchschnitts oft der erste Schritt. Das ist sowieso oft das Erste, was ich mache.
Der Begriff "Durchschnitt" muss sich nicht unbedingt auf den Mittelwert beziehen, aber in diesem Artikel gehe ich davon aus, dass er das tut, weil ich dir zeigen werde, wie du mit der Funktion mean()
in R arbeitest, die das Standardwerkzeug von R für diesen Zweck ist.
Was macht mean() in R?
Die Funktion mean()
berechnet den arithmetischen Durchschnitt von numerischen Daten. Mit anderen Worten: Sie summiert alle Werte in deinem Vektor oder deiner Spalte und teilt sie durch die Gesamtzahl der vorhandenen Werte. Da mean()
Teil von R ist, musst du keine zusätzlichen Pakete laden. Es ist also sofort einsatzbereit, sobald du R öffnest.
Die mean()-Funktion Syntax
Wir wissen also, was mean()
alles kann, aber schauen wir uns die grundlegende Syntax an, damit du sie anwenden kannst:
mean(x, na.rm = FALSE, ...)
-
x
: Ein numerischer Vektor oder ein Objekt. -
na.rm
: Logisch. WennTRUE
,mean()
, werden die Werte vonNA
ignoriert.
Wenn wir weitermachen, solltest du wissen, dass der Umgang mit fehlenden Daten und die Arbeit mit verschiedenen Datenstrukturen einige Feinheiten mit sich bringt.
Berechnen des Mittelwerts eines numerischen Vektors in R
Am einfachsten ist es wahrscheinlich, den Mittelwert eines Vektors zu berechnen:
daily_temperatures <- c(72, 68, 75, 70, 69)
mean(daily_temperatures)
Diese Zeile ergibt den Durchschnitt von 72, 68, 75, 70 und 69, also 70,8.
Behandlung von fehlenden Werten mit na.rm in R
Echte Datensätze haben fehlende Werte. Wenn deine Daten fehlende Elemente enthalten, gibt mean()
als Standardverhalten NA
zurück. Das könnte dich überraschen, wenn du es nicht erwartest. Deshalb nehmen wir uns die Zeit, etwas über das na.rm
Argument zu erfahren.
survey_scores <- c(82, 90, NA, 88, 85)
mean(survey_scores)
Wenn du dies ausführst, erhältst du NA
. Um R anzuweisen, fehlende Werte zu ignorieren, setzt du einfach na.rm = TRUE
:
mean(survey_scores, na.rm = TRUE)
Jetzt berechnet mean()
den Durchschnitt nur anhand der verfügbaren Zahlen.
Verwendung von mean() mit Data Frames in R
Erweitern wir seine Anwendung auf Datenrahmen, die eine typische Struktur für Datensätze in R sind. Wenn du den Mittelwert einer bestimmten Spalte suchst, verwende einfach den Operator $
:
student_scores <- data.frame(
student_name = c("Amir", "Bianca", "Carlos"),
math_score = c(92, 85, 88)
)
mean(student_scores$math_score)
Damit wird die durchschnittliche Punktzahl für alle Schüler in deinem Datenrahmen berechnet. Du kannst diesen Ansatz auf jede numerische Spalte anwenden (aber es muss eine numerische Spalte sein).
Mittelwert der logischen Werte in R
Bisher haben wir uns auf numerische Daten konzentriert, aber du wirst vielleicht überrascht sein zu erfahren, dass mean()
auch mit logischen Vektoren funktioniert. Das ist ein kleines, aber wichtiges Detail, das ich bisher übersehen habe.
Du kannst mean()
mit logischen Werten verwenden, weil TRUE
in R als 1
und FALSE
als 0
behandelt wird. Wenn du also den Mittelwert eines logischen Vektors nimmst, erhältst du den Anteil der TRUE
Werte. Das kann hilfreich sein, wenn du binäre Ergebnisse zusammenfassen musst.
quiz_passed_flags <- c(TRUE, FALSE, TRUE, TRUE)
mean(quiz_passed_flags)
Hier ist das Ergebnis 0,75, da 3 von 4 Werten TRUE
sind.
Ermittlung des gewichteten Mittelwerts in R
Manchmal brauchst du einen gewichteten Durchschnitt, wenn du denkst, dass verschiedene Werte ungleich zum Ergebnis beitragen. Gib weighted.mean()
ein:
course_grades <- c(88, 92, 75)
assignment_weights <- c(0.3, 0.4, 0.3)
weighted.mean(course_grades, assignment_weights)
Wenn du weighted.mean()
verwendest, kannst du die unterschiedliche Wichtigkeit oder Häufigkeit deiner Werte berücksichtigen. mean()
tut dies nicht von alleine.
Einige Dinge, auf die du achten solltest
Die meisten dieser Dinge habe ich bereits erwähnt, aber lass mich mögliche Probleme oder Anmerkungen an einem Ort notieren:
-
Nicht-numerische Daten: Wenn dein Vektor oder deine Spalte nicht numerisch oder logisch ist, wird
mean()
einen Fehler ausgeben. -
NA Handhabung: Wenn du vergisst,
na.rm = TRUE
zu benutzen, wenn dir Daten fehlen, wirst du jedes Mal auf die Nase fallen. -
Leere Vektoren:
mean(numeric(0))
gibtNA
mit einer Warnung zurück.
Ähnliche Funktionen in R
R bietet verschiedene Funktionen, mit denen du deine Daten aus verschiedenen Blickwinkeln untersuchen kannst. Alle diese Funktionen sind auch in Base R enthalten, d.h. du kannst sie nutzen, ohne Bibliotheken zu importieren.
-
median()
: Für den Medianwert -
sd()
: Für die Standardabweichung -
sum()
: Für die Summe der Werte
Wenn du mehr über die Bedeutung der verschiedenen Maßstäbe für die Mitte erfahren möchtest, schau dir unser ausführliches Tutorial an: Mittelwert vs. Zentrum. Mittelwert: Den Unterschied kennen.
Fazit
Bei den meisten grundlegenden Datenanalyseaufgaben ist mean()
deine erste Anlaufstelle, um Zahlen zusammenzufassen.
Lerne weiter mit unseren Kursen, wie Einführung in R und Explorative Datenanalyse in R.
