R-Dokumentation
Kompakte, beispielorientierte R-Referenz. Konzept lesen, Code ansehen, dann in einem Coddy-Lernweg üben.
Erste Schritte
- Was ist R?Was die Programmiersprache R ist, woher sie kommt, wofür sie verwendet wird und wie sie im Vergleich zu Python abschneidet - mit einem ersten lauffähigen Vorgeschmack auf R-Code.
- R installierenWie man R von CRAN herunterlädt und unter Windows, macOS oder Linux installiert, dazu RStudio - die IDE, in der fast alle R schreiben.
- R-Skript ausführenAlle Wege, R-Code auszuführen: die interaktive Konsole, Rscript von der Kommandozeile, source() aus R heraus sowie die Befehle Run und Source in RStudio.
- R-SyntaxDer Kern der R-Syntax: Zuweisung mit <-, Ausdrücke und Auto-Printing, Funktionsaufrufe mit benannten Argumenten und die Alles-ist-ein-Vektor-Regel.
- KommentareWie Kommentare in R funktionieren: das #-Zeichen, warum R keinen echten mehrzeiligen Kommentar hat, der RStudio-Shortcut zum Auskommentieren von Blöcken und was gute Kommentare aussagen.
Variablen & Daten
- VariablenWie man Variablen in R mit dem <--Pfeil anlegt, wann stattdessen = nötig ist, die Benennungsregeln und wie man Variablen mit ls() und rm() auflistet und entfernt.
- DatentypenDie atomaren Datentypen in R - double, integer, character, logical - dazu, wie sich typeof() und class() unterscheiden und wie Konvertierung und Coercion funktionieren.
- ZahlenMit Zahlen in R arbeiten: numeric vs. integer, die Rundungsfamilie, sqrt und log, der Modulo-Operator %% sowie die Sonderwerte Inf und NaN.
- ZeichenkettenAlles, was du für Text in R brauchst: Zeichenketten erzeugen, mit paste und paste0 verbinden, mit sprintf formatieren und mit gsub, grepl und strsplit durchsuchen.
- Ein- & AusgabeWie Ausgabe in R funktioniert - Auto-Printing, print() vs. cat(), message() - und wie du Benutzereingaben mit readline() und readLines() einliest.
Kontrollfluss
- OperatorenJeder Operator, den du in R brauchst - Arithmetik inklusive %% und %/%, vektorisierte Vergleiche, die Unterscheidung & vs. && und %in% für Zugehörigkeitstests.
- If / ElseBedingte Logik in R - die Syntax von if/else if/else, die Klammer-Falle, die Skripte zerbricht, vektorisiertes ifelse() für ganze Vektoren und switch() für Mehrfachverzweigungen.
- For-SchleifenWie for-Schleifen in R funktionieren - über Vektoren und Indizes iterieren, Ergebnisse ohne die Wachsende-Vektor-Falle sammeln, next und break, und wann ein vektorisierter Aufruf die Schleife schlägt.
- While-SchleifenWie while-Schleifen in R funktionieren - Schleifen mit vorangestellter Bedingung, repeat mit break als R's do-while, next und die Gewohnheiten, die dich vor Endlosschleifen bewahren.
Datenstrukturen
- VektorenVektoren sind die Grundeinheit von R - selbst eine einzelne Zahl ist einer. Wie du sie mit c() erzeugst, indizierst (ab 1!), mit logischen Masken filterst und Rechnungen auf ganzen Vektoren auf einmal ausführst.
- ListenListen sind R's Alles-geht-Container: gemischte Typen, verschachtelte Strukturen, ganze Data Frames. Die Schlüsselfähigkeit ist zu wissen, wann [ eine kleinere Liste zurückgibt und wann [[ das Element selbst liefert.
- MatrizenWie du Matrizen mit matrix(), cbind() und rbind() baust, Zeilen und Spalten indizierst und elementweises * sauber von echter Matrixmultiplikation %*% trennst.
- FaktorenFaktoren sind R's Art, kategoriale Daten zu speichern: Ganzzahlcodes, die Textetiketten tragen. Wie du sie erzeugst, ordnest, die Referenzkategorie setzt - und der Faktor-zu-numeric-Falle ausweichst.
- Data FramesDer Data Frame ist R's Tabellenkalkulation: benannte Spalten gleicher Länge, jede mit eigenem Typ. Wie du einen baust, ihn mit str() und head() einschätzt und an Spalten, Zeilen und Zellen kommst.
- Fehlende Werte (NA)NA bedeutet "unbekannt" - und es breitet sich durch jede Berechnung aus, die es berührt. Wie du es mit is.na() erkennst, mit na.rm = TRUE überspringst und bewusst entfernst oder ersetzt.
Funktionen & Pakete
- FunktionenWie du in R eine Funktion erstellst - die Syntax function(x) { }, Rückgabewerte, Standard- und benannte Argumente, die ...-Punkte, anonyme Funktionen und wie Scoping funktioniert.
- apply-FamilieDie apply-Familie - apply, lapply, sapply, vapply, mapply und tapply - führt eine Funktion über jedes Element deiner Daten aus. Hier steht, was jede tut und wann du danach greifst.
- PipesWas %>% bedeutet, wie die native Base-R-Pipe |> funktioniert, die Regeln und Platzhalter beider und welche du in neuem Code verwenden solltest.
- PaketeWie R-Pakete funktionieren: von CRAN installieren mit install.packages(), laden mit library(), require() vs. library(), pkg::fun() und die Pakete, die man kennen sollte.
- ArbeitsverzeichnisWo R nach Dateien sucht und wie du das steuerst: getwd(), setwd(), list.files(), die Umgebung mit rm(list = ls()) leeren und warum das automatische Speichern von .RData eine Falle ist.
Datenaufbereitung
- dplyrWas dplyr ist, wie man es installiert und wie seine sechs Kern-Verben plus die Pipe unübersichtlichen Data-Frame-Code in lesbare Pipelines verwandeln.
- Filtern & SubsetAlle Wege, um genau die Zeilen und Spalten zu behalten, die du willst: logische Masken mit Klammern, der subset()-Einzeiler, %in%, NA-Fallen und dplyr's filter() und select().
- Spalten hinzufügen (mutate)Wie man Data-Frame-Spalten hinzufügt, transformiert und löscht: df$new <- ..., ifelse() für bedingte Spalten, transform() und dplyr's mutate() mit case_when().
- Spalten umbenennenData-Frame-Spalten in R umbenennen: names() und colnames(), Umbenennen nach Position vs. nach Name, setNames(), dplyr rename() und das Aufräumen chaotischer importierter Header.
- SortierenWie Sortieren in R wirklich funktioniert: sort() für Vektoren, warum Data Frames den Index-Trick von order() brauchen, absteigende und mehrspaltige Sortierungen und dplyr's arrange().
- Group By & SummarizeAlle Wege, um in R Statistiken pro Gruppe zu berechnen: Zählen mit table(), tapply() für eine Statistik pro Gruppe, das Formel-Interface von aggregate() und dplyr's group_by() mit summarize().
- Merge & JoinsData Frames über einen gemeinsamen Schlüssel kombinieren: merge() für Inner-, Left-, Right- und Full-Joins, unterschiedliche Schlüsselnamen mit by.x/by.y, die Join-Familie von dplyr und rbind() zum Stapeln von Zeilen.
- Pivot (Umformen)Breite und lange Datenformate und wie du zwischen ihnen wechselst: pivot_longer() und pivot_wider() aus tidyr, die alten Namen spread/gather und reshape() aus Base R.
Import & Export
- CSV einlesenWie du CSV-Dateien mit read.csv() nach R importierst - die Argumente, die zählen, die Arbeitsverzeichnis-Falle hinter den meisten Fehlschlägen und wann sich readr::read_csv lohnt.
- Excel einlesenR kann .xlsx-Dateien nicht allein öffnen - das Paket readxl schließt die Lücke. Wie du Blätter, Bereiche und Kopfzeilen einliest, Excel wieder herausschreibst und den klassischen Excel-Importfallen ausweichst.
- CSV & RDS schreibenAus R exportieren: write.csv mit row.names = FALSE (immer), write.table für andere Trennzeichen und saveRDS für Rundreisen, die deine Typen nicht verlieren.
- DatumswerteR's Date-Klasse ist eine Tageszählung im Kostüm. Wie du Zeichenketten mit as.Date parst, Datumswerte für die Ausgabe formatierst, sie subtrahierst, Sequenzen baust und wann du stattdessen POSIXct brauchst.
Diagramme
- plot()Wie R's plot()-Funktion arbeitet - Diagrammtypen, Titel und Achsenbeschriftungen, Farben, Punktsymbole (pch), Überlagern mit lines() und abline() sowie Legenden.
- HistogrammWie du in R mit hist() ein Histogramm erstellst - breaks wählen, Balken gestalten, auf die Dichteskala wechseln, eine Normalverteilungskurve überlagern und die ggplot2-Variante.
- BoxplotWie du in R mit boxplot() einen Boxplot erstellst - Box und Whisker lesen, die Formelschnittstelle für Gruppenvergleiche, Gestaltung und die Zahlen dahinter finden.
- StreudiagrammWie du in R ein Streudiagramm erstellst - zwei Variablen mit plot() zeichnen, mit abline(lm()) eine Regressionsgerade ergänzen, mit lowess() glätten und eine pairs()-Matrix bauen.
- BalkendiagrammWie du in R mit barplot() ein Balkendiagramm erstellst - aus einem benannten Vektor oder einer table(), gruppierte und gestapelte Balken aus einer Matrix, Gestaltung sowie geom_col vs. geom_bar.
- ggplot2Wie ggplot2 funktioniert - das Denkmodell aus Daten + aes() + geom, Zuordnen vs. Setzen von Ästhetiken, labs(), facet_wrap(), Themes und Speichern mit ggsave().
Statistik
- Deskriptive StatistikWie du Daten in R zusammenfasst: mean(), median(), sd(), var(), summary(), quantile() - was jedes berechnet, das n−1-Detail hinter sd() und warum R's mode() eine Falle ist.
- KorrelationMiss mit cor(), wie sich zwei Variablen gemeinsam bewegen, prüfe mit cor.test(), ob die Beziehung echt ist, und überblicke viele Variablen auf einmal mit einer Korrelationsmatrix.
- T-TestFühre Einstichproben-, Zweistichproben- und gepaarte t-Tests mit t.test() aus und lies - der Teil, der wirklich zählt - jede Zeile der Ausgabe: t, df, p-Wert, Konfidenzintervall.
- ANOVAVergleiche die Mittelwerte von drei oder mehr Gruppen mit aov(), lies die ANOVA-Tabelle Zelle für Zelle und finde mit TukeyHSD() heraus, welche Gruppen sich tatsächlich unterscheiden.
- Lineare RegressionPasse eine Regression mit lm() an, lies jeden Block von summary() - Koeffizienten, Standardfehler, p-Werte, Bestimmtheitsmaß, F-Statistik - und erstelle Vorhersagen mit predict().
- Logistische RegressionModelliere Ja/Nein-Zielgrößen mit glm(family = binomial): die Zusammenfassung lesen, Log-Odds-Koeffizienten mit exp() in Odds Ratios umrechnen und vorhergesagte Wahrscheinlichkeiten richtig gewinnen.
- KonfidenzintervalleKonfidenzintervalle für Mittelwerte, Anteile und Modellkoeffizienten gewinnen - t.test(), prop.test(), confint() - dazu, was "95 % Konfidenz" wirklich bedeutet und wie die Stichprobengröße die Breite steuert.
- ZufallszahlenErzeuge Zufallsdaten mit rnorm(), runif(), rbinom() und sample(), mach sie mit set.seed() reproduzierbar und entschlüssle R's d/p/q/r-Namenssystem für Verteilungen.