Lerne R in 10 Minuten
R ist eine leistungsstarke Programmiersprache und Umgebung für statistische Berechnungen, Datenanalyse und Visualisierung. Dieses Tutorial behandelt die wesentlichen Konzepte, um mit der R-Programmierung zu beginnen.
1. Erste Schritte mit R
Beginnen wir mit einem einfachen Programm. Öffne R oder RStudio und gib folgenden Code ein:
print("Hallo, Welt!")
Du kannst dies auch in der R-Konsole ausführen. Die Ausgabe wird sein:
[1] "Hallo, Welt!"
Dieses einfache Programm demonstriert R’s grundlegende Ausgabefunktionalität. Die print()
-Funktion zeigt Textinformationen in der Konsole an.
2. Grundlegende Syntax und Variablen
R’s Syntax ist für statistische Berechnungen und Datenanalyse konzipiert. Lass uns grundlegende Variablenzuweisung und Operationen erkunden.
# Dies ist ein Kommentar
x <- 5 # Zuweisung mit <- Operator
y = 10 # Zuweisung mit = Operator (weniger gebräuchlich)
print(x + y)
Grundlegende Syntaxregeln in R:
- Zuweisung: Verwende
<-
für Variablenzuweisung (bevorzugt) oder=
- Kommentare: Einzeilige Kommentare beginnen mit
#
- Funktionen: Verwende Klammern
()
für Funktionsaufrufe - Vektoren: R ist vektorisiert - Operationen funktionieren auf gesamten Vektoren
3. Datentypen und Strukturen
R hat mehrere grundlegende Datentypen und Strukturen für statistische Berechnungen.
3.1 Grundlegende Datentypen
# Numerisch (double)
num <- 3.14
print(class(num))
# Integer
int <- 42L
print(class(int))
# Character (String)
text <- "Hallo R"
print(class(text))
# Logisch (boolean)
flag <- TRUE
print(class(flag))
3.2 Vektoren
Vektoren sind die grundlegende Datenstruktur in R. Sie sind eindimensionale Arrays, die numerische, Zeichen- oder logische Daten enthalten können.
# Vektoren erstellen
numeric_vector <- c(1, 2, 3, 4, 5)
character_vector <- c("Apfel", "Banane", "Kirsche")
logical_vector <- c(TRUE, FALSE, TRUE)
# Vektoroperationen
print(numeric_vector * 2) # Jedes Element mit 2 multiplizieren
print(numeric_vector + 1) # Zu jedem Element 1 addieren
print(length(numeric_vector)) # Vektorlänge erhalten
3.3 Listen
Listen sind flexible Container, die Elemente verschiedener Typen enthalten können.
# Eine Liste erstellen
my_list <- list(
name = "John",
age = 30,
scores = c(85, 92, 78),
active = TRUE
)
# Auf Listenelemente zugreifen
print(my_list$name)
print(my_list[["age"]])
print(my_list[[3]])
3.4 Data Frames
Data Frames sind die wichtigste Datenstruktur für Datenanalyse in R. Sie sind wie Tabellen mit Zeilen und Spalten.
# Einen Data Frame erstellen
df <- data.frame(
name = c("Alice", "Bob", "Charlie"),
age = c(25, 30, 35),
score = c(88, 92, 85)
)
# Den Data Frame anzeigen
print(df)
print(str(df)) # Struktur des Data Frames
print(summary(df)) # Zusammenfassende Statistiken
4. Grundlegende Operationen
R bietet eine reichhaltige Menge an Operatoren für mathematische und logische Operationen.
# Arithmetische Operationen
a <- 10
b <- 3
print(a + b) # Addition
print(a - b) # Subtraktion
print(a * b) # Multiplikation
print(a / b) # Division
print(a ^ b) # Potenzierung
print(a %% b) # Modulus
print(a %/% b) # Ganzzahldivision
# Vergleichsoperationen
print(a > b) # Größer als
print(a == b) # Gleich
print(a != b) # Ungleich
print(a <= b) # Kleiner oder gleich
# Logische Operationen
print(TRUE & FALSE) # UND
print(TRUE | FALSE) # ODER
print(!TRUE) # NICHT
5. Kontrollstrukturen
R bietet Standard-Kontrollstrukturen für den Programmablauf.
5.1 if-Anweisungen
alter <- 20
if (alter >= 18) {
print("Erwachsener")
} else if (alter >= 13) {
print("Jugendlicher")
} else {
print("Kind")
}
5.2 for-Schleifen
# Über einen Vektor iterieren
fruechte <- c("Apfel", "Banane", "Kirsche")
for (frucht in fruechte) {
print(frucht)
}
# Sequenz verwenden
for (i in 1:5) {
print(paste("Nummer:", i))
}
5.3 while-Schleifen
zaehler <- 1
while (zaehler <= 5) {
print(zaehler)
zaehler <- zaehler + 1
}
6. Funktionen
Funktionen in R sind wiederverwendbare Codeblöcke für spezifische Aufgaben.
# Grundlegende Funktionsdefinition
berechne_flaeche <- function(laenge, breite) {
flaeche <- laenge * breite
return(flaeche)
}
# Funktion aufrufen
resultat <- berechne_flaeche(5, 3)
print(resultat)
# Funktion mit Standardparametern
gruesse <- function(name = "Gast") {
return(paste("Hallo,", name))
}
print(gruesse("Alice"))
print(gruesse()) # Verwendet Standardparameter
7. Datenmanipulation
R glänzt bei der Datenmanipulation. Lass uns einige grundlegende Operationen erkunden.
# Beispiel-Data Frame
studenten <- data.frame(
name = c("Alice", "Bob", "Charlie", "Diana"),
mathe_punktzahl = c(85, 92, 78, 95),
naturwissenschaft_punktzahl = c(88, 90, 82, 96),
note = c("A", "A", "B", "A")
)
# Daten filtern
print(studenten[studenten$mathe_punktzahl > 85, ]) # Zeilen wo mathe_punktzahl > 85
print(studenten[, c("name", "mathe_punktzahl")]) # Spezifische Spalten
# Neue Spalten hinzufügen
studenten$gesamt_punktzahl <- studenten$mathe_punktzahl + studenten$naturwissenschaft_punktzahl
studenten$durchschnitt_punktzahl <- studenten$gesamt_punktzahl / 2
print(studenten)
8. Datenvisualisierung
R hat leistungsstarke Visualisierungsfähigkeiten, besonders mit ggplot2.
# Grundlegendes Plotten (base R)
# Erstelle Beispieldaten
x <- 1:10
y <- x^2
# Streudiagramm
plot(x, y, main = "Streudiagramm", xlab = "X", ylab = "Y", col = "blau", pch = 16)
# Liniendiagramm
plot(x, y, type = "l", main = "Liniendiagramm", xlab = "X", ylab = "Y", col = "rot")
# Histogramm
hist(rnorm(100), main = "Histogramm", xlab = "Werte", col = "hellblau")
8.1 ggplot2 verwenden (falls installiert)
# Installiere und lade ggplot2 falls noch nicht installiert
# install.packages("ggplot2")
library(ggplot2)
# Erstelle einen Beispiel-Data Frame
plot_daten <- data.frame(
kategorie = c("A", "B", "C", "D"),
wert = c(25, 40, 30, 35)
)
# Erstelle ein Balkendiagramm
ggplot(plot_daten, aes(x = kategorie, y = wert)) +
geom_bar(stat = "identity", fill = "stahlblau") +
labs(title = "Balkendiagramm Beispiel", x = "Kategorie", y = "Wert") +
theme_minimal()
9. Statistische Analyse
R ist für statistische Berechnungen konzipiert. Hier sind einige grundlegende statistische Funktionen.
# Beispieldaten
daten <- c(23, 45, 67, 34, 56, 78, 89, 12, 45, 67)
# Grundlegende Statistiken
print(mean(daten)) # Mittelwert
print(median(daten)) # Median
print(sd(daten)) # Standardabweichung
print(var(daten)) # Varianz
print(min(daten)) # Minimum
print(max(daten)) # Maximum
print(summary(daten)) # Fünf-Zahlen-Zusammenfassung
# Korrelation
x <- 1:10
y <- x + rnorm(10) # Füge etwas Rauschen hinzu
print(cor(x, y)) # Korrelationskoeffizient
# Lineare Regression
modell <- lm(y ~ x)
print(summary(modell))
10. Arbeiten mit Dateien
R bietet Funktionen zum Lesen und Schreiben von Dateien.
# In eine Datei schreiben
write.csv(studenten, "studenten.csv", row.names = FALSE)
# Aus einer Datei lesen
# gelesene_daten <- read.csv("studenten.csv")
# print(gelesene_daten)
# Mit Textdateien arbeiten
# writeLines(c("Zeile 1", "Zeile 2", "Zeile 3"), "beispiel.txt")
# text_inhalt <- readLines("beispiel.txt")
# print(text_inhalt)
11. Pakete und Bibliotheken
R’s Stärke kommt von seinem umfangreichen Paket-Ökosystem.
# Pakete installieren
# install.packages("dplyr") # Für Datenmanipulation
# install.packages("ggplot2") # Für Visualisierung
# Pakete laden
library(dplyr)
library(ggplot2)
# dplyr für Datenmanipulation verwenden
# studenten %>%
# filter(mathe_punktzahl > 85) %>%
# select(name, mathe_punktzahl) %>%
# arrange(desc(mathe_punktzahl))
12. Fehlerbehandlung
R bietet Mechanismen für die Fehlerbehandlung.
# Grundlegende Fehlerbehandlung
tryCatch({
resultat <- 10 / 0
print(resultat)
}, error = function(e) {
print(paste("Fehler aufgetreten:", e$message))
}, finally = {
print("Dies wird immer ausgeführt")
})
# try() verwenden
resultat <- try(10 / 0, silent = TRUE)
if (inherits(resultat, "try-error")) {
print("Division fehlgeschlagen")
}
13. Fortgeschrittene Themen
13.1 Apply-Familien-Funktionen
Die Apply-Familien-Funktionen sind leistungsstark für vektorisierte Operationen.
# Eine Matrix erstellen
mat <- matrix(1:12, nrow = 3, ncol = 4)
print(mat)
# Apply-Funktionen
print(apply(mat, 1, mean)) # Zeilenmittelwerte
print(apply(mat, 2, sum)) # Spaltensummen
# lapply für Listen
meine_liste <- list(a = 1:5, b = 6:10, c = 11:15)
print(lapply(meine_liste, mean)) # Mittelwert jedes Listenelements
# sapply (vereinfachte Version)
print(sapply(meine_liste, mean))
13.2 String-Manipulation
text <- "Hallo R Programmierung"
print(toupper(text)) # In Großbuchstaben umwandeln
print(tolower(text)) # In Kleinbuchstaben umwandeln
print(nchar(text)) # Zeichen zählen
print(substr(text, 1, 5)) # Teilstring extrahieren
# stringr-Paket verwenden (falls installiert)
# library(stringr)
# str_split(text, " ") # String aufteilen
13.3 Datum und Zeit
# Aktuelles Datum und Zeit
aktuelle_zeit <- Sys.time()
print(aktuelle_zeit)
# Datum formatieren
formatiertes_datum <- format(aktuelle_zeit, "%Y-%m-%d")
print(formatiertes_datum)
# Datumsarithmetik
heute <- Sys.Date()
zukuenftiges_datum <- heute + 30
print(zukuenftiges_datum)
14. Best Practices
Hier sind einige Tipps für besseren R-Code:
- Verwende aussagekräftige Variablennamen
- Kommentiere deinen Code angemessen
- Verwende vektorisierte Operationen statt Schleifen, wenn möglich
- Lade Pakete am Anfang deines Skripts
- Verwende konsistente Einrückung (2 Leerzeichen empfohlen)
- Teste deinen Code mit Beispieldaten
- Verwende Versionskontrolle für deine Projekte
15. Nächste Schritte
Um R weiter zu lernen:
- Üben: Arbeite an kleinen Datenanalyseprojekten
- Pakete erkunden: Lerne dplyr, ggplot2, tidyr und andere wesentliche Pakete
- Online-Ressourcen: Verwende R-Dokumentation, Stack Overflow und R-bloggers
- Bücher: “R for Data Science” von Hadley Wickham
- Kurse: Besuche Online-Kurse zur Datenanalyse mit R
R ist ein leistungsstarkes Werkzeug für statistische Berechnungen und Datenanalyse. Mit Übung wirst du in der Lage sein, komplexe Datenmanipulationen durchzuführen, schöne Visualisierungen zu erstellen und anspruchsvolle statistische Analysen durchzuführen.