R ist ein Statistikprogramm. RStudio ist eine Arbeitsumgebung, die das Arbeiten mit R übersichtlicher macht. Man kann sich das ungefähr so vorstellen:
R ist der Motor. RStudio ist das Cockpit.
Der Motor führt die Berechnungen aus. Das Cockpit hilft dabei, Code zu schreiben, Daten zu sehen, Grafiken zu betrachten und Ergebnisse zu organisieren.
R ist ein kostenloses Programm für Statistik, Datenanalyse und Grafiken. Es wird in vielen wissenschaftlichen Bereichen genutzt, weil es flexibel ist und sehr viele statistische Verfahren unterstützt.
Mit R kann man zum Beispiel:
Ein großer Vorteil von R ist, dass Analysen als Code gespeichert werden. Dadurch kann man später genau nachvollziehen, was gemacht wurde.
Das ist ein wichtiger Unterschied zu rein klickbasierten Programmen:
In R bleibt der Analyseweg sichtbar.
R und RStudio sind nicht dasselbe.
R ist die eigentliche Statistiksoftware. R rechnet.
RStudio ist eine Entwicklungsumgebung. RStudio macht R leichter bedienbar.
Man installiert normalerweise beides:
Danach startet man meistens nur RStudio. RStudio verwendet R automatisch im Hintergrund.
Eine einfache Analogie:
RStudio besteht typischerweise aus mehreren Fenstern. Die genaue Darstellung kann sich je nach Version und Einstellungen unterscheiden, aber die Grundlogik bleibt ähnlich.

Oben links befindet sich häufig das Skriptfenster. Dort schreibt man den Code, den man speichern und später erneut ausführen möchte.
Unten links befindet sich häufig die Konsole. Dort wird Code direkt ausgeführt. Dort erscheinen auch viele Textausgaben.
Oben rechts befindet sich häufig das Environment- oder History-Fenster. Dort sieht man geladene Daten, Objekte und den bisherigen Befehlsverlauf.
Unten rechts befindet sich häufig das Fenster für Plots, Packages, Help und Files. Dort sieht man Grafiken, Hilfeseiten, Dateien oder installierte Packages.
Im Skriptfenster schreibt man Code, den man speichern möchte.
Das ist besonders wichtig, weil statistische Analysen oft wiederholt werden müssen. Vielleicht wird der Datensatz aktualisiert, ein Fehler korrigiert oder eine Analyse leicht verändert. Wenn der Code gespeichert ist, kann man die Analyse erneut ausführen.
Ein Skript ist also eine Art Rezept:
Es beschreibt Schritt für Schritt, wie die Analyse durchgeführt wurde.
Die Konsole führt Befehle direkt aus.
Wenn man in der Konsole schreibt:
2 + 2
antwortet R:
4
Die Konsole ist praktisch zum schnellen Ausprobieren. Für echte Analysen sollte man den Code aber lieber im Skript speichern.
Im Environment sieht man, welche Objekte gerade in R vorhanden sind.
Das können zum Beispiel sein:
Wenn man einen Datensatz einliest, erscheint er normalerweise im Environment.
In diesem Bereich sieht man häufig:
Wenn man eine Grafik erstellt, erscheint sie oft im Plot-Fenster.
Code kann in RStudio auf verschiedene Weise ausgeführt werden.
Wenn der Code im Skriptfenster steht, klickt man in die gewünschte Zeile und drückt:
Strg + Enter
Auf manchen Tastaturen oder Betriebssystemen kann es leicht anders sein. Die Grundidee bleibt:
Schreibe den Code im Skript, führe ihn zeilenweise oder blockweise aus, prüfe das Ergebnis.
Beispiel:
mean(c(4, 5, 6, 7))
Dieser Befehl berechnet den Mittelwert der Zahlen 4, 5, 6 und 7.
In R speichert man Informationen in Objekten.
Ein Objekt kann zum Beispiel eine Zahl, ein Text, ein Datensatz oder ein Modell sein.
Mit dem Zeichen <- weist man einem Objekt einen Wert zu.
Beispiel:
alter <- 34
Das bedeutet:
Speichere den Wert 34 unter dem Namen
alter.
Danach kann man mit alter weiterarbeiten:
alter + 1
R gibt dann aus:
35
Man kann sich ein Objekt wie eine beschriftete Schublade vorstellen. In die Schublade legt man eine Information. Über den Namen findet man sie später wieder.
Funktionen sind vorbereitete Befehle. Sie nehmen eine Eingabe, verarbeiten sie und geben ein Ergebnis zurück.
Eine Funktion erkennt man an den runden Klammern.
Beispiel:
mean(c(4, 5, 6, 7))
Die Funktion heißt mean. In den Klammern steht, wovon der Mittelwert berechnet werden soll.
Weitere wichtige Funktionen:
sum()
mean()
sd()
table()
summary()
plot()
lm()
glm()
Eine Funktion funktioniert wie eine kleine Maschine:
R kann von Anfang an schon sehr viel. Für spezielle Aufgaben braucht man aber oft zusätzliche Erweiterungen. Diese Erweiterungen heißen Packages.
Man kann sich Packages wie Apps vorstellen.
Man installiert ein Package mit:
install.packages("ggplot2")
Man lädt es für die aktuelle Sitzung mit:
library(ggplot2)
Wichtig:
install.packages() muss man normalerweise nur einmal ausführen.
library() muss man in jeder neuen R-Sitzung erneut ausführen, wenn man das Package verwenden möchte.
Beispiel:
install.packages("ggplot2")
library(ggplot2)
Ein Data Frame ist eine Datentabelle in R.
Man kann ihn sich ähnlich wie eine Excel-Tabelle vorstellen:
Beispiel:
daten <- data.frame(
person = c(1, 2, 3),
gruppe = c("Therapie", "Kontrolle", "Therapie"),
stress = c(5, 8, 4)
)
Eine Spalte spricht man mit dem Dollarzeichen an:
daten$stress
Das bedeutet:
Nimm aus dem Data Frame
datendie Spaltestress.
Viele statistische Modelle in R verwenden eine Formel.
Eine typische Formel sieht so aus:
AV ~ UV
Die Tilde ~ kann man lesen als:
wird erklärt durch
Beispiel:
lm(Stress ~ Gruppe, data = daten)
Das bedeutet:
Erkläre Stress durch Gruppe.
Bei einer Regression:
lm(Burnout ~ Neurotizismus, data = dat)
Das bedeutet:
Erkläre Burnout durch Neurotizismus.
Bei mehreren UVs:
lm(Burnout ~ Neurotizismus + Alter + Geschlecht, data = dat)
Das bedeutet:
Erkläre Burnout durch Neurotizismus, Alter und Geschlecht.
Eine Interaktion schreibt man mit *:
lm(Burnout ~ Neurotizismus * Geschlecht, data = dat)
Das bedeutet:
Prüfe Neurotizismus, Geschlecht und die Interaktion zwischen Neurotizismus und Geschlecht.
Eine saubere Analyse folgt meistens einer ähnlichen Logik.
daten <- read.csv("daten.csv")
head(daten)
summary(daten)
str(daten)
table(daten$Gruppe)
mean(daten$Stress, na.rm = TRUE)
sd(daten$Stress, na.rm = TRUE)
plot(daten$Neurotizismus, daten$Burnout)
Oder mit ggplot2:
library(ggplot2)
ggplot(daten, aes(x = Neurotizismus, y = Burnout)) +
geom_point()
modell <- lm(Burnout ~ Neurotizismus, data = daten)
plot(modell)
summary(modell)
Hier beginnt wieder die Statistik. R gibt nur Zahlen aus. Die Interpretation muss fachlich und statistisch sinnvoll erfolgen.
R-Code kann heute sehr gut zusammen mit KI-Modellen erstellt werden. Das ist hilfreich, weil Modelle beim Formulieren, Prüfen und Erklären von Code unterstützen können.
Ein KI-Modell kann zum Beispiel helfen bei:
Ein guter Prompt könnte sein:
Ich habe eine kontinuierliche AV namens Stress und eine kategoriale UV namens Gruppe mit zwei unabhängigen Gruppen. Bitte schreibe mir R-Code für einen unabhängigen t-Test, inklusive Prüfung der Datenstruktur und kurzer Erklärung.
Oder:
Ich möchte Burnout durch Neurotizismus, Alter und Geschlecht vorhersagen. Burnout ist kontinuierlich. Schreibe mir R-Code für eine multiple lineare Regression mit Modellprüfung.
Wichtig ist aber: Das Modell kann nur dann wirklich gut helfen, wenn die statistische Frage klar beschrieben wird.
Man sollte daher immer angeben:
KI-Modelle können Code erzeugen. Sie können aber nicht automatisch entscheiden, ob die statistische Fragestellung sinnvoll formuliert wurde.
Ein Modell kann zum Beispiel R-Code für eine ANOVA schreiben. Wenn die Daten aber eigentlich verschachtelt sind, wäre möglicherweise ein Mehrebenenmodell passender. Das erkennt man nur, wenn man die Datenstruktur und die statistische Logik versteht.
Deshalb gilt:
KI kann beim Programmieren helfen. Sie ersetzt aber nicht das statistische Denken.
Man sollte insbesondere selbst verstehen:
Sonst besteht die Gefahr, dass man technisch korrekten Code für eine falsche Analyse erhält.
Ein guter Grundsatz lautet:
Lasse dir beim Code helfen, aber entscheide selbst, ob die Analyse zur Forschungsfrage passt.
mean(daten$Stress, na.rm = TRUE)
sd(daten$Stress, na.rm = TRUE)
table(daten$Gruppe)
str(daten)
summary(daten)
t.test(Stress ~ Gruppe, data = daten, paired = FALSE)
t.test(daten$Stress_vorher, daten$Stress_nachher, paired = TRUE)
modell <- lm(Burnout ~ Neurotizismus, data = daten)
summary(modell)
modell <- lm(Burnout ~ Neurotizismus + Alter + Geschlecht, data = daten)
summary(modell)
modell <- glm(Diagnose ~ Stress + Alter, data = daten, family = binomial())
summary(modell)
install.packages("ggplot2")
library(ggplot2)
ggplot(daten, aes(x = Neurotizismus, y = Burnout)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE)
R ist am Anfang ungewohnt, weil man nicht klickt, sondern schreibt. Der Vorteil ist: Jeder Analyseschritt bleibt sichtbar. Dadurch wird Statistik transparenter, wiederholbarer und besser prüfbar.
Wer die statistische Logik versteht, kann R sehr gut nutzen — auch gemeinsam mit KI-Modellen. Entscheidend bleibt aber immer die Frage:
Passt dieser Code wirklich zu meiner Forschungsfrage und zu meinen Daten?