16  Best Practices

Dieser Abschnitt enthält einige Empfehlungen zur Verbesserung der Lesbarkeit eures R-Codes und zum Umgang mit Datensätzen.

Wenn wir anfangen, R häufiger zu verwenden und unsere Skripte mit anderen zu teilen, ist es wichtig, dass sie gut lesbar und verständlich sind. Andernfalls ist es schwierig, sich im Skript zurechtzufinden, und es kann passieren, dass man später selbst nicht mehr weiß, was im Skript gemacht wurde.

16.1 Style Guide

Im Folgenden werden einige Vorschläge aus dem einflussreichen Style Guide von Hadley Wickham vorgestellt. Wickham ist Chief Scientist bei Posit und unter anderem Autor der Pakete ggplot2 und tidyverse.

Natürlich gibt es noch viele andere Stile, um R-Code zu schreiben. Wichtiger als die Wahl eines bestimmten Stils ist die konsistente Anwendung des gewählten Stils.

16.1.1 Dateien

R-Skripte sollten so benannt werden, dass erkennbar ist, was sie beinhalten. Sie sollten auf .R enden.

# gute Benennung

eignungstest_analyse.R
erstis_t_test.R

# schlechte Benennung

zeug.R
erster_versuch.R

16.1.2 Objekte

Objekte in einem Skript sollten klein geschrieben werden, Wörter können durch Unterstriche _ getrennt werden. Die Benennung sollte kurz und eindeutig sein, auch wenn dies nicht immer einfach ist. Auch sollten bereits in R vorhandene Begriffe (Funktionsnamen etc.) vermieden werden.

# gute Benennung
abi_schnitt 
mathe_abschluss

# schlechte Benennung
mathematikabschlussnote
T

16.1.3 Kommentare

Um eure Skripte lesbarer zu machen, ist es hilfreich, Kommentare mit # einzufügen. Kommentare fassen kurz zusammen, was in eurem Skript passiert.

# Y-BOCS Skalenmittelwerte berechnen
ybocs_mean <- rowMeans(ybocs_df[, c("frage 1", "frage 2", "frage 3", "frage 4",
                                    "frage 5", "frage 6", "frage 7", "frage 8",
                                    "frage 9", "frage 10")])

16.1.4 Objektzuweisung

In R können neue Objekte entweder mit <- oder mit = erstellt werden. Wickham empfiehlt, neue Objekte ausschließlich mit <- zu definieren und = nur zur Spezifikation von Funktionsargumenten zu verwenden.

# Zum Beispiel so
gewicht_geburt <- 3.55

# Nicht so
gewicht_geburt = 3.55

16.1.5 Leerzeichen

Leerzeichen verbessern die Lesbarkeit des R-Codes. Dabei sind einige einfache Regeln zu beachten.

Vor und nach (mathematischen) Operatoren (=, +, -, <, > usw.) muss ein Leerzeichen stehen.

# Zum Beispiel so
schnitt <- mean(noten * LP, na.rm = TRUE)

# Nicht so
schnitt<-mean(noten*LP,na.rm = TRUE)

Vor einem Komma stehen keine Leerzeichen, nach einem Komma schon.

# Zum Beispiel so
schnitt <- mean(noten * LP, na.rm = TRUE)
eignungstest[5, ]

# Nicht so
schnitt <- mean( noten * LP ,na.rm = TRUE )
eignungstest[ 5,]

16.2 Datensätze

Bei der Arbeit mit Datensätzen müssen wir besonders sorgfältig vorgehen, damit unsere Analysen nachvollziehbar und reproduzierbar sind. Der Originaldatensatz sollte immer im Rohzustand vorliegen und niemals überschrieben werden. Alle Änderungen am Datensatz (z.B. Umkodierung oder Zusammenfassung von Variablen) sollten in einem Skript gespeichert werden. Ein geänderter Datensatz sollte als neue Datei gespeichert werden und im R-Skript einen neuen Namen erhalten.

# Original-Datensatz einlesen:
eignungstest <- read.csv("eignungstest.csv")
# Datensatz verändern
eignungstest$positive_affect_1_recoded <- 5-eignungstest$positive_affect
# veränderten Datensatz in neuer Datei speichern:
write.csv(eignungstest, 
          file = "eignungstest_recoded.csv")