Menu
Coddy logo textTech

R Spickzettel

Zuletzt aktualisiert

Hello World & Zuweisung

R's idiomatischer Zuweisungsoperator ist <- (der =-Operator funktioniert ebenfalls).

OperationSyntax
Einen Wert ausgebenprint("Hello, World!")
Automatisch ausgeben (Konsole)"Hello, World!"
Verketten und ausgebencat("Hi", name, "\n")
Zuweisen (idiomatisch)x <- 5
Zuweisen (ebenfalls gültig)x = 5
Rechtszuweisung5 -> x
Kommentar# this is a comment
Ein Skript ausführenRscript app.R

Datentypen & Vektoren

Der Vektor ist R's grundlegende Datenstruktur; selbst ein einzelner Wert ist ein Vektor der Länge 1.

OperationSyntax
Numerischer Vektorv <- c(1, 2, 3)
Zeichenvektors <- c("a", "b")
Logischer Vektorb <- c(TRUE, FALSE)
Ganzzahlsequenz1:10
Sequenz mit Schrittweiteseq(0, 1, by = 0.1)
Werte wiederholenrep(0, times = 5)
Basistypennumeric, character, logical, integer, complex
Typ prüfen / umwandelnclass(x), as.numeric("42")

Vektoroperationen

Operationen sind vektorisiert und wirken elementweise; die Indizierung ist 1-basiert.

OperationSyntax
Element zugreifen (1-basiert)v[1]
Einen Bereich ausschneidenv[2:4]
Logisches Filternv[v > 2]
Ein Element entfernenv[-1]
Elementweise Mathematikv * 2, v1 + v2
Längelength(v)
Gängige Reduzierersum(v), mean(v), max(v)
Sortieren / umkehrensort(v), rev(v)
Benannter Vektorc(a = 1, b = 2)

Data Frames

Ein Data Frame ist eine Tabelle aus Spalten, jede ein Vektor gleicher Länge.

OperationSyntax
Einen Data Frame erstellendf <- data.frame(name = c("Ada"), age = c(30))
Erste / letzte Zeilenhead(df), tail(df)
Dimensionennrow(df), ncol(df), dim(df)
Spaltennamennames(df), colnames(df)
Eine Spalte auswählendf$age oder df[["age"]]
Zeilen / Spalten auswählendf[1, ], df[, "age"]
Zeilen filterndf[df$age > 18, ]
Eine Spalte hinzufügendf$adult <- df$age >= 18
Zusammenfassende Statistiksummary(df)
Strukturüberblickstr(df)

Faktoren & Listen

Faktoren speichern kategoriale Daten; Listen halten Elemente gemischter Typen.

OperationSyntax
Einen Faktor erstellenf <- factor(c("low", "high"))
Faktorstufenlevels(f)
Geordneter Faktorfactor(x, ordered = TRUE)
Nach Stufe zählentable(f)
Eine Liste erstellenl <- list(name = "Ada", scores = c(1, 2))
Zugriff per Namel$name oder l[["name"]]
Zugriff per Positionl[[1]]
Teilliste (bleibt Liste)l[1]
Länge / Namenlength(l), names(l)

Kontrollfluss

Bedingungen stehen in Klammern und Blöcke in geschweiften Klammern.

OperationSyntax
If / else if / elseif (x > 0) { ... } else if (x < 0) { ... } else { ... }
Vektorisiertes if-elseifelse(v > 0, "pos", "neg")
For-Schleifefor (i in 1:10) { ... }
For über einen Vektorfor (x in v) { ... }
While-Schleifewhile (x < 100) { ... }
Repeat mit breakrepeat { if (done) break }
Switchswitch(key, a = 1, b = 2)
Logische Operatoren&&, ||, ! (skalar); &, | (Vektor)

Funktionen

Funktionen sind erstklassig; der zuletzt ausgewertete Ausdruck wird zurückgegeben.

OperationSyntax
Eine Funktion definierenadd <- function(a, b) { a + b }
Expliziter Returnreturn(a + b)
Standardargumentgreet <- function(name = "World") { ... }
Variadisches Argumentf <- function(...) { sum(...) }
Aufruf per Namebox(w = 2, h = 3)
Anonyme Funktionfunction(x) x * 2
Anonym (Kurzform)\(x) x * 2
An eine Funktion höherer Ordnung übergebensapply(1:3, function(x) x^2)

Die apply-Familie

Eine Funktion über Daten anwenden, ohne explizite Schleifen zu schreiben.

FunktionWas 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.

FunktionWas 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?
Ja. Dieser R-Spickzettel ist völlig kostenlos, ohne erforderliche Anmeldung. Setze ein Lesezeichen und komm jederzeit wieder, wenn du eine Vektoroperation, eine Data-Frame-Methode oder eine Statistikfunktion nachschlagen möchtest.
Sind R-Vektoren wirklich 1-indiziert?
Ja. Anders als die meisten Programmiersprachen beginnt die Indizierung in R bei 1, sodass 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?
Ein Data Frame ist R's Tabellentyp: eine Sammlung von Spalten, bei der jede Spalte ein Vektor derselben Länge ist und verschiedene Spalten unterschiedliche Typen halten können (Zahlen, Text, Faktoren). Es ist die Standardstruktur für Datensätze - Zeilen sind Beobachtungen und Spalten sind Variablen - und du indizierst ihn als df[rows, columns], wählst eine Spalte mit df$name aus und inspizierst ihn mit str(df) oder summary(df).
Kann ich R online üben?
Ja. Öffne den R-Playground, um jeden Codeschnipsel aus diesem Spickzettel in deinem Browser auszuführen - kein R oder RStudio zu installieren. Wenn du Struktur möchtest, führt dich Coddys kostenloser interaktiver R-Kurs Schritt für Schritt von Vektoren und Data Frames zur apply-Familie und Statistik.
Ist dieser Spickzettel für Anfänger geeignet?
Ja. Er ist von den häufigsten Themen (Zuweisung, Vektoren, Data Frames) hin zu den fortgeschrittenen (die apply-Familie und Statistikfunktionen) gegliedert, sodass du die oberen Abschnitte schon am ersten Tag nutzen und in den Rest hineinwachsen kannst.
Coddy programming languages illustration

Lerne R mit Coddy

LOS GEHT'S