R Spickzettel
Zuletzt aktualisiert
Hello World & Zuweisung
R's idiomatischer Zuweisungsoperator ist <- (der =-Operator funktioniert ebenfalls).
| Operation | Syntax |
|---|---|
| Einen Wert ausgeben | print("Hello, World!") |
| Automatisch ausgeben (Konsole) | "Hello, World!" |
| Verketten und ausgeben | cat("Hi", name, "\n") |
| Zuweisen (idiomatisch) | x <- 5 |
| Zuweisen (ebenfalls gültig) | x = 5 |
| Rechtszuweisung | 5 -> x |
| Kommentar | # this is a comment |
| Ein Skript ausführen | Rscript app.R |
Datentypen & Vektoren
Der Vektor ist R's grundlegende Datenstruktur; selbst ein einzelner Wert ist ein Vektor der Länge 1.
| Operation | Syntax |
|---|---|
| Numerischer Vektor | v <- c(1, 2, 3) |
| Zeichenvektor | s <- c("a", "b") |
| Logischer Vektor | b <- c(TRUE, FALSE) |
| Ganzzahlsequenz | 1:10 |
| Sequenz mit Schrittweite | seq(0, 1, by = 0.1) |
| Werte wiederholen | rep(0, times = 5) |
| Basistypen | numeric, character, logical, integer, complex |
| Typ prüfen / umwandeln | class(x), as.numeric("42") |
Vektoroperationen
Operationen sind vektorisiert und wirken elementweise; die Indizierung ist 1-basiert.
| Operation | Syntax |
|---|---|
| Element zugreifen (1-basiert) | v[1] |
| Einen Bereich ausschneiden | v[2:4] |
| Logisches Filtern | v[v > 2] |
| Ein Element entfernen | v[-1] |
| Elementweise Mathematik | v * 2, v1 + v2 |
| Länge | length(v) |
| Gängige Reduzierer | sum(v), mean(v), max(v) |
| Sortieren / umkehren | sort(v), rev(v) |
| Benannter Vektor | c(a = 1, b = 2) |
Data Frames
Ein Data Frame ist eine Tabelle aus Spalten, jede ein Vektor gleicher Länge.
| Operation | Syntax |
|---|---|
| Einen Data Frame erstellen | df <- data.frame(name = c("Ada"), age = c(30)) |
| Erste / letzte Zeilen | head(df), tail(df) |
| Dimensionen | nrow(df), ncol(df), dim(df) |
| Spaltennamen | names(df), colnames(df) |
| Eine Spalte auswählen | df$age oder df[["age"]] |
| Zeilen / Spalten auswählen | df[1, ], df[, "age"] |
| Zeilen filtern | df[df$age > 18, ] |
| Eine Spalte hinzufügen | df$adult <- df$age >= 18 |
| Zusammenfassende Statistik | summary(df) |
| Strukturüberblick | str(df) |
Faktoren & Listen
Faktoren speichern kategoriale Daten; Listen halten Elemente gemischter Typen.
| Operation | Syntax |
|---|---|
| Einen Faktor erstellen | f <- factor(c("low", "high")) |
| Faktorstufen | levels(f) |
| Geordneter Faktor | factor(x, ordered = TRUE) |
| Nach Stufe zählen | table(f) |
| Eine Liste erstellen | l <- list(name = "Ada", scores = c(1, 2)) |
| Zugriff per Name | l$name oder l[["name"]] |
| Zugriff per Position | l[[1]] |
| Teilliste (bleibt Liste) | l[1] |
| Länge / Namen | length(l), names(l) |
Kontrollfluss
Bedingungen stehen in Klammern und Blöcke in geschweiften Klammern.
| Operation | Syntax |
|---|---|
| If / else if / else | if (x > 0) { ... } else if (x < 0) { ... } else { ... } |
| Vektorisiertes if-else | ifelse(v > 0, "pos", "neg") |
| For-Schleife | for (i in 1:10) { ... } |
| For über einen Vektor | for (x in v) { ... } |
| While-Schleife | while (x < 100) { ... } |
| Repeat mit break | repeat { if (done) break } |
| Switch | switch(key, a = 1, b = 2) |
| Logische Operatoren | &&, ||, ! (skalar); &, | (Vektor) |
Funktionen
Funktionen sind erstklassig; der zuletzt ausgewertete Ausdruck wird zurückgegeben.
| Operation | Syntax |
|---|---|
| Eine Funktion definieren | add <- function(a, b) { a + b } |
| Expliziter Return | return(a + b) |
| Standardargument | greet <- function(name = "World") { ... } |
| Variadisches Argument | f <- function(...) { sum(...) } |
| Aufruf per Name | box(w = 2, h = 3) |
| Anonyme Funktion | function(x) x * 2 |
| Anonym (Kurzform) | \(x) x * 2 |
| An eine Funktion höherer Ordnung übergeben | sapply(1:3, function(x) x^2) |
Die apply-Familie
Eine Funktion über Daten anwenden, ohne explizite Schleifen zu schreiben.
| Funktion | Was sie macht |
|---|---|
apply(m, 1, sum) | Über Matrixzeilen (1) oder Spalten (2) anwenden |
sapply(v, f) | Über einen Vektor anwenden, zu einem Vektor/Matrix vereinfachen |
lapply(v, f) | Über einen Vektor anwenden, immer eine Liste zurückgeben |
vapply(v, f, numeric(1)) | Wie sapply, aber mit geprüftem Rückgabetyp |
mapply(f, a, b) | Über mehrere Vektoren parallel anwenden |
tapply(x, group, mean) | Eine Funktion pro Gruppe anwenden |
Map(f, a, b) | Multivariates apply, das eine Liste zurückgibt |
Reduce(+, v) | Einen Vektor mit einer binären Funktion zusammenfalten |
Häufige Datenaufbereitungs- & Statistikfunktionen
Häufig verwendete Basisfunktionen zum Zusammenfassen und Umformen von Daten.
| Funktion | Was sie macht |
|---|---|
mean(v) / median(v) | Durchschnitt / mittlerer Wert |
sd(v) / var(v) | Standardabweichung / Varianz |
min(v) / max(v) / range(v) | Kleinster / größter / beide |
quantile(v) | Quantile (z. B. Quartile) |
table(x) | Häufigkeitszählungen von Werten |
unique(v) / duplicated(v) | Eindeutige Werte / Duplikat-Markierungen |
is.na(v) / na.omit(df) | Fehlende Werte finden / entfernen |
aggregate(y ~ g, df, mean) | y nach Gruppe g zusammenfassen |
order(v) | Indexreihenfolge zum Sortieren |
cor(x, y) | Korrelation zwischen zwei Vektoren |
Die R-Syntax, die du am häufigsten brauchst, auf einer Seite. Dieser R-Spickzettel ist eine Schnellreferenz für die Kernsprache - Zuweisung und Datentypen, Vektoren und Vektoroperationen, Data Frames, Faktoren und Listen, Kontrollfluss, Funktionen sowie die apply-Familie, die quer durch die rstats-Datenanalyse verwendet wird.
Alles hier ist Basis-R und läuft auf einer Standardinstallation - keine zusätzlichen Pakete nötig. Kopiere, was du brauchst, oder probiere jeden Codeschnipsel live im R-Playground aus - keine Einrichtung nötig.
R-Spickzettel FAQ
Ist dieser R-Spickzettel kostenlos?
Sind R-Vektoren wirklich 1-indiziert?
v[1] das erste Element und v[length(v)] das letzte zurückgibt. Negative Indizes haben eine besondere Bedeutung - v[-1] entfernt das erste Element, statt vom Ende zu zählen. Diese 1-basierte Konvention zieht sich gleichermaßen durch Vektoren, Listen und Data Frames.Was ist ein Data Frame in R?
df[rows, columns], wählst eine Spalte mit df$name aus und inspizierst ihn mit str(df) oder summary(df).