Direkt zum Inhalt

R sd() Funktion: Standardabweichung in R

Lerne, wie du die Variabilität deiner Daten mit der R-Funktion sd() messen kannst. Entdecke praktische Beispiele und wichtige Techniken für den Umgang mit fehlenden Werten und gruppierten Daten.
Aktualisierte 23. Juni 2025  · 5 Min. Lesezeit

Die Standardabweichung ist eine der gebräuchlichsten Methoden, um zusammenzufassen, wie breit deine Daten gestreut sind. Mit der Funktion sd() in R kannst du dieses Maß für die Variabilität schnell berechnen, egal ob du mit Vektoren, Datenrahmen oder gruppierten Daten arbeitest. 

In diesem Artikel gehe ich auf die Grundlagen der Verwendung von sd() in R ein, erkläre, wie man mit fehlenden Werten umgeht, und zeige, wie man mit Funktionen wie tapply() und Paketen wie dplyr Standardabweichungen zwischen Gruppen berechnet.

Was macht sd() in R?

In R berechnet die Funktion sd() aus Base R die Standardabweichung eines numerischen Vektors oder einer Spalte eines Datenrahmens. Sie misst, wie stark die Werte in deinen Daten vom Mittelwert abweichen und gibt dir ein Gefühl für die Variabilität oder Streuung.

Wenn du mit dem Konzept der Varianz vertraut bist, ist die Standardabweichung einfach die Quadratwurzel aus der Varianz. Aufgrund ihrer Berechnungsweise (die Quadratwurzel aus der durchschnittlichen quadrierten Abweichung) bleibt die Standardabweichung auf derselben Skala wie die ursprünglichen Daten. Das macht es einfacher, sie in der Praxis zu interpretieren.

Ein einfaches sd()-Beispiel

Angenommen, du hast eine Reihe von Zahlen und möchtest wissen, wie stark sie vom Durchschnitt abweichen.

Hier ist, wie du es in R machst:

exam_scores <- c(75, 80, 85, 90, 95) 
sd(exam_scores) 

Die Ausgabe gibt dir die Standardabweichung an, die den durchschnittlichen Abstand der einzelnen Punkte vom Mittelwert angibt.

Du kannst sd() mit jedem numerischen Vektor verwenden, einschließlich Ganzzahlen, Doppelzahlen oder den Ergebnissen von Berechnungen. Du weißt vielleicht, dass R logische Vektoren als numerisch behandelt (TRUE als 1, FALSE als 0), so dass die Funktion sd() technisch gesehen mit logischen Vektoren funktionieren würde (du kannst sie ausprobieren, wenn du willst), aber die Idee der Standardabweichung ist am sinnvollsten für kontinuierliche numerische Daten.

Behandlung von fehlenden Werten mit sd()

In der realen Welt enthalten Datensätze oft fehlende Werte, daher ist dies erwähnenswert: Wenn deine Daten irgendwelche NA Werte enthalten, gibt sd() standardmäßig NA zurück.

Betrachte dieses Beispiel:

heights <- c(170, 175, NA, 180, 185)
sd(heights)

Das Ergebnis ist NA.

Um fehlende Werte zu ignorieren und die Standardabweichung der verfügbaren Zahlen zu berechnen, verwendest du das Argument na.rm = TRUE. Du kannst auch die NA Werte aus deinem Datensatz löschen, aber das würde ich nur empfehlen, wenn es sinnvoll ist.

sd(heights, na.rm = TRUE) 

Jetzt erhältst du die Standardabweichung für 170, 175, 180 und 185.

Berechnung der Standardabweichung für Datenrahmen in R

Du kannst die Standardabweichung einer bestimmten Spalte in einem Datenrahmen ganz einfach mit dem Operator $ berechnen. Angenommen, du hast einen Datenrahmen mit Produktgewichten:

product_data <- data.frame( weight = c(1.2, 1.5, 1.3, 1.7, 1.4), price = c(10, 12, 11, 13, 12) ) 
sd(product_data$weight)

So erhältst du die Standardabweichung der Spalte weight. Denke daran, dass sd() für numerische Vektoren und nicht für ganze Datenrahmen konzipiert ist. Wähle immer die entsprechende Spalte aus.

sd() und gruppierte Standardabweichungen

Oft willst du die Variabilität innerhalb von Gruppen messen, z. B. nach Kategorie, Region oder einem anderen Faktor. R bietet mehrere Möglichkeiten, gruppierte Standardabweichungen zu berechnen. Ich werde drei zeigen:

Verwendung von tapply() für gruppierte Standardabweichungen

Angenommen, du hast Verkaufsdaten für verschiedene Regionen und möchtest die Standardabweichung für jede Region ermitteln:

sales_amount <- c(200, 220, 210, 250, 240, 230) 
region <- c("North", "North", "South", "South", "North", "South") 
tapply(sales_amount, region, sd)

tapply() wendet sd() auf jede nach Region definierte Gruppe an.

Verwendung von aggregate() für gruppierte Standardabweichungen

Wenn du deine Ergebnisse lieber in einem aufgeräumten Datenrahmen haben möchtest, funktioniert aggregate():

sales_data <- data.frame( region = c("North", "North", "South", "South", "North", "South"), amount = c(200, 220, 210, 250, 240, 230) ) 
aggregate(amount ~ region, data = sales_data, sd)

Dies ergibt einen zusammenfassenden Datenrahmen mit der Standardabweichung für jede Region.

Verwendung von dplyr für gruppierte Standardabweichungen

Mit dem Paket dplyr sind gruppierte Berechnungen noch besser lesbar. Verwende summarize() nach der Gruppierung:

library(dplyr) 

sales_data %>% 
   group_by(region) %>% 
   summarize(sd_amount = sd(amount))

Dieser Ansatz ist besonders bei größeren Datensätzen oder bei der Verkettung mehrerer Datentransformationen nützlich. (Oder wenn du, wie ich, einfach den Pipe-Operator verwendest).

Häufige Fehler und Tipps

Selbst eine einfache Funktion wie sd() kann Probleme verursachen, wenn du nicht aufpasst. Hier sind einige häufige Fallstricke:

  • Nicht-numerische Daten: sd() funktioniert nur mit numerischen Vektoren. Wenn deine Daten Zeichen oder Faktoren enthalten, bekommst du einen Fehler. Verwende is.numeric(), um deine Daten zu überprüfen.

  • Fehlende Werte: Ein einziges NA führt dazu, dass sd() NA zurückgibt. Verwende immer na.rm = TRUE, wenn du fehlende Werte ignorieren willst.

  • Kleine Stichprobengrößen: sd() verwendet n-1 im Nenner (Standardabweichung der Stichprobe). Bei Vektoren der Länge 1 gibt sd() NA und nicht 0 zurück.

Vor allem der letzte Fehler ist interessant, finde ich. Das ist ein weniger bekannter Unterschied, der dich bei der Umstellung von Python auf R stören kann, da Python durch die Standardabweichung der Grundgesamtheit dividiert, nicht durch die Stichprobe.

Nützliche Variationen und verwandte Funktionen in R

R bietet mehrere verwandte Funktionen zur Messung der Variabilität und zur Zusammenfassung von Daten:

  • var(): Berechnet die Varianz, die das Quadrat der Standardabweichung ist.

  • apply(), sapply(), lapply(): Nützlich für die Anwendung von sd() auf Zeilen oder Spalten von Matrizen und Datenrahmen.

  • mad(): Berechnet die absolute Medianabweichung, die ein weiteres interessantes und robusteres Maß für die Variabilität ist.

Ich zeige dir sd(), das mit apply() verwendet wird, da ich es erwähnt habe: Hier erfährst du, wie du mit apply() die Standardabweichung jeder Spalte in einer Matrix ermitteln kannst. Wie zuvor erstelle ich die Matrix im Handumdrehen.

measurement_matrix <- matrix(1:9, nrow = 3) 
apply(measurement_matrix, 2, sd)

Dies liefert die Standardabweichung für jede Spalte und gibt dir einen schnellen Überblick über die Variabilität mehrerer Variablen.

Fazit

Die Funktion sd() in R ist relativ einfach (sie besteht nur aus einer Zeile Code). Aber wenn du es für Berichte oder Präsentationen verwendest und dir die Details nicht ganz klar sind, melde dich für unseren Lernpfad Statistiker/in in R an. Es gibt viele Nuancen in der Statistik und Datenanalyse, also stelle sicher, dass du dich gut auskennst.


Josef Waples's photo
Author
Josef Waples
Themen

R lernen mit DataCamp

Lernpfad

R Programming Fundamentals

0 Min.
Level-up your R programming skills! Learn how to work with common data structures, optimize code, and write your own functions.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn

Keine Hacks, keine Tricks. Schüler/innen und Lehrer/innen, lest weiter, um zu erfahren, wie ihr die Datenerziehung, die euch zusteht, kostenlos bekommen könnt.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

4 Min.

Der Blog

2022-2023 DataCamp Classrooms Jahresbericht

Zu Beginn des neuen Schuljahres ist DataCamp Classrooms motivierter denn je, das Lernen mit Daten zu demokratisieren. In den letzten 12 Monaten sind über 7.650 neue Klassenzimmer hinzugekommen.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 Min.

Der Blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates hat im zweiten Quartal 2023 über 20.000 Stipendien an unsere gemeinnützigen Partner vergeben. Erfahre, wie fleißige benachteiligte Lernende diese Chancen in lebensverändernde berufliche Erfolge verwandelt haben.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Der Blog

Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

15 Min.

Der Blog

Die 50 besten AWS-Interview-Fragen und Antworten für 2025

Ein kompletter Leitfaden zur Erkundung der grundlegenden, mittleren und fortgeschrittenen AWS-Interviewfragen, zusammen mit Fragen, die auf realen Situationen basieren.
Zoumana Keita 's photo

Zoumana Keita

15 Min.

Der Blog

Top 30 Generative KI Interview Fragen und Antworten für 2024

Dieser Blog bietet eine umfassende Sammlung von Fragen und Antworten zu generativen KI-Interviews, die von grundlegenden Konzepten bis hin zu fortgeschrittenen Themen reichen.
Hesam Sheikh Hassani's photo

Hesam Sheikh Hassani

15 Min.

Mehr anzeigenMehr anzeigen