Programmieren in R: eine Einführung für PhonetikerInnen
2024-03-14
1 Setup
1.1 Installation und Kursverzeichnis
Laden Sie die Statistik-Software R herunter und installieren Sie sie. Die neueste Version ist derzeit
4.3.x
(Stand: März 2024).Laden Sie außerdem RStudio herunter und installieren Sie es.
Schauen Sie sich diese kurze Einführung in RStudio an.
Legen Sie außerdem ein Verzeichnis für diesen Kurs auf Ihrer Festplatte an.
1.2 R projects
Für diesen Kurs werden wir ein R project anlegen, da Ihnen dies die Arbeit mit R auf lange Sicht erleichtern wird.
Öffnen Sie RStudio und klicken Sie oben rechts auf die Schaltfläche
Project: (None)
.Klicken Sie dann auf
New Project
und im Folgenden aufExisting Directory
und wählen Sie mitBrowse
das Kursverzeichnis aus, das Sie eben angelegt haben.Schließen Sie den Vorgang ab, indem Sie auf
Create Project
klicken.
RStudio öffnet nun automatisch das Projekt, das genauso benannt ist wie Ihr Kursverzeichnis (siehe Schaltfläche oben rechts). Sie können das Projekt über diese Schaltfläche schließen und anschließend auch wieder öffnen. Das Projekt lässt sich außerdem öffnen, indem Sie in Ihrem Kursverzeichnis auf die neu angelegte Datei mit der Endung .Rproj
klicken.
Sollten Sie Probleme beim Erstellen des Projekts haben, empfehlen wir Ihnen diese Video-Kurzanleitung.
Weiterführende Infos: R Projekte
R Projekte haben viele Vorteile, insbesondere wenn Sie in mehreren Kursen mit R arbeiten und für jeden ein eigenes R Projekt haben. Das Projekt merkt sich, welche Dateien Sie geöffnet haben, und stellt diese beim nächsten Öffnen des Projekts wieder her, sodass Sie da weiterarbeiten können, wo Sie aufgehört haben. Außerdem ist das working directory des Projekts Ihr Kursverzeichnis, das heißt alle Dateien, die Sie im Verlauf des Kurses dort ablegen, können Sie ganz einfach über das Panel unten links (Tab Files
) oder über relative Pfade öffnen. Ihr Arbeitsverzeichnis können Sie übrigens überprüfen, indem Sie in der Konsole getwd()
eingeben und Enter drücken.
1.3 Packages und R Version
Für R gibt es viele Tausend packages bzw. libraries, die uns die Arbeit erleichtern werden. Bitte installieren Sie nun folgende Packages (das dauert eine Weile!):
install.packages(c("Rcpp", "remotes", "knitr", "tidyverse", "magrittr", "rmarkdown", "emuR", "gridExtra", "emmeans", "broom", "lmerTest", "pbkrtest", "MuMIn"))
Weiterführende Infos: Installation von R Paketen
Sollte der obige Befehl den Fehler installation of package had non-zero exit status
werfen, hat die Installation eines oder mehrerer Pakete nicht geklappt. Für Windows kann es sein, dass Sie in diesem Fall zusätzlich Rtools installieren müssen. Für MacOS müssen Sie ggf. die XCode command-line tools installieren und/oder resetten. Öffnen Sie dafür ein Mac Terminal und führen Sie folgende Befehle aus:
xcode-select --install
# Falls die Installation der R Packages dann immer noch nicht klappt:
xcode-select --reset
Wenn Sie sich unsicher sind, wie Sie auftretende Fehler bei der Installation der R Packages für Ihr Betriebssystem beheben können, können Sie mich auch gerne fragen!
Einige Basispakete werden automatisch aktiviert beim Öffnen von RStudio, die meisten aber müssen Sie erst laden, bevor Sie die Funktionen verwenden können, die die Pakete anbieten. Zum Laden von Packages benutzen Sie den Befehl library()
:
Weiterführende Infos: Updates
Bitte überprüfen Sie regelmäßig, ob Ihre Packages Updates benötigen – die Updates werden in R nicht automatisch eingespielt! Klicken Sie hierfür in der Werkzeugleiste auf Tools > Check for Package Updates
. Auch RStudio selbst erhält ab und zu Updates, dies können Sie überprüfen mit Help > Check for Updates
.
R muss ebenfalls aktuell gehalten werden. Sie können Ihre R Version überprüfen mit getRversion()
. Besuchen Sie einfach in regelmäßigen Abständen die R Webseite und schauen Sie, ob eine neue stabile Version verfügbar ist.
1.4 Sessions
Eine Session beginnt, wenn man R bzw. RStudio startet bzw. wenn man ein Projekt öffnet. Man beendet eine Session entweder mit Session > Quit Session
in der Werkzeugleiste oder mit Strg+Q
bzw. Ctrl+Q
oder mit der Konsoleneingabe q()
. Die Session endet außerdem automatisch, wenn Sie RStudio schließen.
Sie werden dann gefragt, ob Sie das workspace image speichern wollen. Wenn Sie die Variablen, die Sie in der Session angelegt haben, im Environment behalten und in der nächsten Session wieder verwenden wollen, klicken Sie auf Save
. Der workspace wird dann in Ihrem Kursverzeichnis in einer Datei mit der Endung .RData
abgelegt. Wenn Sie den workspace nicht speichern möchten, klicken Sie auf Don't save
. Falls Sie die Session doch nicht beenden wollen, klicken Sie auf Cancel
.
Für diesen Kurs bitte ich Sie, den workspace nicht zu speichern (Don't save
).
1.5 Dokumentarten
1.5.1 R Skripte
Die Konsole in RStudio ist die direkte Verbindung zu R, d.h. dort kann R Code direkt ausgeführt werden. Um aber Ihren Code jederzeit replizieren zu können, müssen Sie ihn in einem Dokument festhalten. Üblicherweise werden Sie das in Ihrem Arbeitsalltag in einem R Skript machen. Ein R Skript kann einfach erstellt werden über File > New File > R Script
(bzw. Strg + Shift + N
) und sollte immer mit der Dateiendung .R
abgespeichert werden. Ein R Skript enthält ausschließlich ausführbaren Code. Beim Ausführen eines Skriptes wird eine Zeile nur dann von R ignoriert, wenn sie mit #
beginnt; dann ist die Zeile auskommentiert. Es gibt verschiedene Möglichkeiten, ein R Skript auszuführen. Markieren Sie die gewünschten Zeilen (wenn es nur eine Zeile ist, setzen Sie einfach den Cursor in die Zeile), und klicken Sie in der kleinen Werkzeugleiste im Panel mit dem geöffneten Skript auf Run
oder drücken Sie Strg+Enter
bzw. Ctrl+Enter
. Das Ergebnis sehen Sie sofort in der Konsole.
1.5.2 R Markdown
In den letzten Jahren hat sich aber auch eine andere Dokumentart etabliert, insbesondere für die Erstellung von Berichten und Lehrmaterial: das R Markdown. R Markdown ist eine Art Textdokument, in das man Code Snippets einbetten kann, die ganz normal ausgeführt werden können (wie oben beschrieben). Ein solches Dokument enthält häufig mehr Text als Code. Sie können ein R Markdown erstellen mit File > New File > R Markdown
und es ist Konvention, das Dokument mit der Dateiendung .Rmd
abzuspeichern. Eine R Markdown Datei wird im Normalfall in ein anderes Format umgewandelt (“ge-knitted”), z.B. in eine HTML, eine PDF, oder sogar ein Word Dokument. Dies geschieht entweder über den Wollknäuel-Button mit der Aufschrift Knit
oder mittels:
Wir benutzen R Markdown auch, um z.B. die HTML herzustellen, die Sie gerade lesen.
Im Markdown Dokument werden für Textmarkierungen besondere Zeichen verwendet, die dann beim knitten interpretiert und umgesetzt werden:
# Überschrift: Mit einem Hashtag bekommt man die größtmögliche Überschrift; je mehr Hashtags man benutzt, desto kleiner wird die Überschrift.
**fett**: Mit doppeltem Asterisk vor und hinter einer Textpassage wird der Text fett gesetzt.
*kursiv*: Mit einfachem Asterisk wird der Text kursiv.
`code`: Die einfachen rückwärts gewandten Anführungszeichen heben den darin enthaltenen Text hervor; das wird üblicherweise für Code oder Variablen benutzt, wenn man sich außerhalb eines Code Snippets befindet; dieser Code kann aber nicht ausgeführt werden!
```: Die dreifachen rückwarts gewandten Anführungszeichen markieren den Anfang und das Ende eine Code Snippets (auch Code Block genannt). Dazwischen darf nur Code geschrieben werden; Text muss mit einem Hashtag als Kommentar verfasst werden. Am Anfang des Code Snippets wird außerdem in geschweiften Klammern angegeben, welche Programmiersprache man im Code Block schreibt (in unserem Fall: {r}).
Noch mehr Informationen dazu finden Sie im Cheatsheet zu R Markdown (insb. Seite 2, linke Spalte).
1.6 Hilfe zur Selbsthilfe
1.6.1 Fehler erkennen
Warnzeichen: Wenn Sie einen Syntaxfehler in einem Dokument haben (beispielsweise eine vergessene Klammer), sehen Sie am Rand kleine rote Warnzeichen. Diese sollten nicht ignoriert werden, denn sie weisen darauf hin, dass Sie einen Fehler gemacht haben. Wenn Sie den Fehler korrigieren, verschwinden die Warnzeichen.
“Knit”: Wir empfehlen, dass Sie Ihr Markdown-Dokument regelmäßig in eine HTML überführen, indem Sie oben in der Werkzeugleiste auf “Knit” klicken. Wenn alles klappt, sehen Sie hoffentlich in einem neuen Fenster oder im Viewer (Panel unten rechts in RStudio) die kompilierte HTML. Wenn Sie aber Syntaxfehler oder andere Fehler in Ihrem Code haben, wird die HTML nicht erstellt und Sie kriegen stattdessen einen Fehler in der Konsole angezeigt. Dort sehen Sie auch, in welcher Zeile der Fehler ist.
Code einzeln ausführen: Führen Sie jede neu geschriebene Zeile Code aus. So sehen Sie Ihr Ergebnis und können überlegen, ob das Ergebnis das gewünschte ist oder nicht.
1.6.2 Community nutzen
Es gibt eine sehr große und hilfsbereite R Community, die Ihnen das Programmieren lernen mit R erleichtern wird. Hier ein paar gute Links und Befehle, falls Sie mal nicht weiter wissen:
Stack Overflow: Ein Blog, auf dem Sie höchstwahrscheinlich eine Antwort auf Ihre Frage zu R finden werden. Am einfachsten googlen Sie Ihre Frage auf Englisch; die Antwort eines Mitglieds von Stack Overflow wird bei den ersten Suchergebnissen dabei sein.
Hadley Wickham’s “R for Data Science”: Hadley Wickham ist der Chief Programmer des “tidyverse”, mit dem wir uns noch auseinandersetzen werden. Seine Bücher sind sehr verständlich, gut strukturiert und kurzweilig zu lesen.
Cheatsheets: Das sind PDFs, die eine Funktionsübersicht mit Erklärungen und ggf. Beispielen in absoluter Kurzform bieten. Sie finden einige Cheatsheets in der obersten Werkzeugleiste unter
Help > Cheatsheets
. Insbesondere die ersten drei sind für Sie interessant. Ansonsten kann man Cheatsheets auch googlen und findet dann z.B. Data Transformation with dplyr oder diese sehr ausführliche Reference Card.Vignetten: Zu einigen essentiellen Paketen gibt es so genannte “Vignetten”, das sind meist HTMLs oder PDFs, die die AutorInnen eines Pakets geschrieben haben. Sie können mit folgender Konsoleneingabe nach Vignetten suchen:
- In RStudio können Sie sich über die Eigenschaften einer Funktion informieren, indem Sie im Panel unten rechts mit dem Tab
Help
die gewünschte Funktion ins Suchfeld eingeben. Sie erhalten dann u.a. Informationen über die Argumente der Funktion und Beispiele. Dasselbe erreichen Sie über diese Konsoleneingaben (beispielhaft für Hilfe zur Funktiongetwd()
):
1.6.3 Hilfe zu ggplot2
ggplot2
ist nicht nur bekannt, sondern auch beliebt! Dementsprechend viel Hilfe bekommen Sie von der R Community. Hier ein paar gute Quellen für Hilfe bei der Erstellung von Abbildungen:
Kapitel Data Visualisation in Hadley Wickham’s “R for Data Science”
1.6.4 Statistik in R: Literatur
Wenn Sie mehr Informationen zu benötigen, seien Ihnen folgende Werke ans Herz gelegt:
Bodo Winter’s “Statistics for Linguists: An Introduction using R”: Ein frisch erschienenes Buch voller hervorragender Erklärungen zu allen wichtigen Themen der Inferenzstatistik. Ist über die Uni-Bib digital verfügbar.
Stefan Gries’ “Statistics for Linguistics with R: A Practical Introduction”: Nützlich für die Entscheidungsfindung, welches statistische Modell zu den eigenen Daten und der eigenen Fragestellung passt. Da das Buch von 2009 ist, ist der Code z.T. veraltet, aber aus statistischer Sicht ist der Inhalt noch aktuell. Ist über die Uni-Bib digital verfügbar.
Harald Baayen’s “Analyzing Linguistic Data: A Practical Introduction to Statistics”: Einführung für eher Fortgeschrittene. Hier ist der R Code ebenfalls oft veraltet, aber die Erklärungen und Beispiele zu den Statistikgrundlagen sind hilfreich. Als physisches Exemplar in der Unibib verfügbar.