Learn in 10 minutes

Learn in 10 minutes

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:

  1. Üben: Arbeite an kleinen Datenanalyseprojekten
  2. Pakete erkunden: Lerne dplyr, ggplot2, tidyr und andere wesentliche Pakete
  3. Online-Ressourcen: Verwende R-Dokumentation, Stack Overflow und R-bloggers
  4. Bücher: “R for Data Science” von Hadley Wickham
  5. 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.