EMZETT.
Login

Kurz: == != < > <= >= · & | ! (elementweise) · && || (einzelner Wert, in if) · %in% (enthalten) · is.na() · isTRUE() · identical() · all.equal()

Teil des Kurses R

Kapitel 9 von 9 im Kurs R (Abschnitt „Nachschlagen“). Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.

Datenstrukturen

StrukturErzeugenZugriff
Vektorc(1, 2, 3), 1:10v[2], v[v > 1], v["name"]
Matrixmatrix(1:6, nrow = 2)m[i, j], m[i, ], m[, j]
Listelist(a = 1, b = "x")l$a, l[["a"]]
Data Framedata.frame(x = 1:3, y = c("a", "b", "c"))df$x, df[i, j], df[df$x > 1, ]
Faktorfactor(c("a", "b", "a"))levels(f), table(f)

Häufige Funktionen

AufgabeFunktionen
Überblickhead tail str summary dim nrow ncol names class typeof
Kennzahlenmean median sd var min max range quantile sum cumsum cor table
Sortierensort order rev rank
Zusammenfassenaggregate tapply split sapply lapply apply table
Zusammenführenmerge rbind cbind
Textpaste paste0 sprintf nchar substr strsplit gsub grepl toupper trimws
DatumSys.Date as.Date format difftime seq weekdays
Dateienread.csv write.csv readLines writeLines readRDS saveRDS file.exists
Zufallset.seed sample rnorm runif rbinom

Indizierung auf einen Blick

x[3]            drittes Element          x[-3]         ohne drittes
x[2:4]          Bereich                  x[c(1, 5)]    Auswahl
x[x > 5]        Bedingung                x["name"]     nach Name
df[df$a > 1, c("a", "b")]                Zeilen filtern, Spalten wählen
df[order(df$a, decreasing = TRUE), ]     sortieren

Vergleich und Logik

== != < > <= >= · & | ! (elementweise) · && || (einzelner Wert, in if) · %in% (enthalten) · is.na() · isTRUE() · identical() · all.equal()

Typische Fehler

Meldung / ProblemUrsache
object 'x' not foundTippfehler oder Variable nie definiert
could not find function "f"Paket nicht geladen (library) oder Tippfehler
non-numeric argument to binary operatorRechnen mit Text: as.numeric()
subscript out of boundsIndex größer als Länge (Indizes beginnen bei 1)
argument is of length zeroVektor leer in if
the condition has length > 1if mit Vektor: any(), all() oder ifelse()
NAs introduced by coercionUmwandlung scheiterte; Daten prüfen
Ergebnis NAfehlende Werte: na.rm = TRUE
Zahl mit Komma wird Textread.csv2() oder dec = ","
Vergleich 0.1 + 0.2 == 0.3 falschall.equal() verwenden

Konventionen

  • Zuweisung mit <-, Namen in snake_case
  • Vektorisierung vor Schleifen
  • Reproduzierbarkeit: set.seed, relative Pfade, Projekte statt setwd()
  • Stil prüfen mit lintr, formatieren mit styler

Weiterlernen

  • R for Data Science (r4ds.hadley.nz, kostenlos)
  • Hilfe: ?funktion, vignette("paket"), stackoverflow.com
  • Übungen: swirl (install.packages("swirl")), Tidy Tuesday
  • Wiki dieser Seite: Artikel zu Statistik und Datenanalyse

Merke

  • Alles ist ein Vektor; vektorisiert arbeiten
  • Data Frames sind das Arbeitspferd; aggregate, merge, order
  • Statistische Tests und Modelle sind eingebaut (t.test, lm)
  • Grafik mit Base R oder ggplot2, Berichte mit Quarto

Quiz zur Selbstkontrolle

Weiter im Kurs

Zurück: Grafik, Pakete und Tidyverse

Alle Kapitel: R im Überblick