1  R und RStudio

1.1 Was ist R und was ist RStudio?

R ist eine Programmiersprache, die speziell für statistische Auswertungen entwickelt wurde. Die Basisversion von R kommt bereits mit einer grafischen Nutzeroberfläche, die aber wenig benutzerfreundlich ist. Daher hat sich die Verwendung von RStudio etabliert, eine informative und einfach bedienbare grafische Benutzeroberfläche.

1.2 Wie kann ich R und RStudio nutzen?

1.2.1 Installation von R und RStudio auf dem eigenen Rechner

R kann kostenfrei von CRAN (Comprehensive R Archive Network) heruntergeladen werden. Dort wählen wir unter “Download and Install” eine R-Version aus, die zum unserem Betriebssystem passt. Unter Windows wählen wir zusätzlich noch den Ordner “base” auf der nächsten Seite aus. Anschließend sollte ganz oben auf der Seite ein Download-Link für die aktuellste Version von R zur Verfügung stehen.

Nach der Installation von R können wir RStudio ebenfalls kostenlos herunterladen.

1.2.2 RStudio-Server

Neben der Installation von R und RStudio auf dem eigenen Rechner können wir im Seminar auch auf unserem RStudio-Server arbeiten Wir stellen für das Seminar eine RStudio-Browser-App (https://rstudio.ifp.uni-mainz.de) zu Verfügung, die Zugangsdaten erhalten Sie von uns. Dort werden Sie die zentralen Datensätze etc. bereits in unserem Kursprojekt finden. Wichtig: Der RStudio-Server ist nur innerhalb der JGU bzw. per VPN erreichbar. Da die Kursdaten von Zeit zu Zeit überschrieben werden, empfehlen wir, eigenen Code in separaten R-Dateien zu speichern.

Sie sollten alle Hausaufgaben im Rahmen des Kurses vorzugsweise auf Ihrem eigenen Rechner mit einer lokalen R-Installation, notfalls über die RStudio-Browser-App ausführen.

1.3 RStudio Oberfläche

Das User-Interface von RStudio (siehe Figure 1.1) besteht grundsätzlich aus vier Unterfenstern, von denen die wichtigsten der Editor für R-Skripte (links oben) und die R-Konsole (links unten) sind. Wir erstellen und bearbeiten unseren R-Code im Editor, in der R-Konsole sehen wir dann den Output.

Öffnen wir RStudio zum ersten Mal, erscheint auf der linken Seite lediglich die R-Konsole, der Editor ist nicht zu sehen. Das liegt daran, dass zunächst kein R-Skript vorhanden ist. Um ein neues R-Skript zu erstellen, klicken wir rechts oben in der Menüleiste auf “New File -> R Script”.

Im Fenster oben rechts sehen wir alle Datensätze und Objekte etc., die wir während des Arbeitens in R erzeugen. Das Fenster unten rechts hat verschiedene sinnvolle Funktionen. Zum einen sehen wir unter “Plots” alle Grafiken, die wir über ein R-Skript erzeugen. Zum anderen können unter “Help” auch Informationen zu einzelnen Funktionen und Paketen abgerufen werden. Unter “Files” sehen wir zudem alle im Arbeitsverzeichnis (siehe hierzu auch RStudio Projekte) vorhandenen Dateien.

Das wichtigste Tastenkürzel ist STRG+ENTER bzw. CMD+ENTER für Mac-Nutzer:innen. Damit wird die aktuelle Zeile (oder ein ganzer Codeblock) ausgeführt und den Output dieses Schrittes sehen wir dann in der R-Konsole.

Figure 1.1: RStudio-Fenster (Quelle: https://www.produnis.de/R/r-und-rstudio.html)

Eine gute Video-Einführung in R und RStudio findet sich bei unserem Kollegen Mario Haim in seinem WegweisR Tutorial. Ein Cheatsheet zur RStudio-Oberfläche findet sich bei den RStudio-Entwicklerm.

1.4 RStudio Projekte

Grundsätzlich greift R auf das Heimatverzeichnis zu, wenn es (a) nach Datensätzen zum Einlesen oder Skripten sucht und (b) Ergebnisse unserer Arbeit in R (z.B. neu erstellte Skripte, Grafiken) abspeichern will. Das führt dazu, dass wir mühsam Pfade und Dateinamen angeben müssen, wenn wir in anderen Ordnern arbeiten möchten oder mit anderen R-Skripte teilen.

Wir empfehlen für das Arbeiten mit R sogenannte Projekte (Dateikürzel .Rproj) anzulegen. Diese haben einen wichtigen Vorteil gegenüber dem Arbeiten ohne Projekte: Das Arbeitsverzeichnis ist immer dasjenige, in dem das Projekt liegt. Anstelle von langen und nutzerspezifischen Pfaden wie C:/USER/Petra/Uni-Kram/WS/R-Kurs/Unterlagen/data/meinedaten.csv können wir Daten und Skripte einfach direkt im Projektordner ablegen und dann mit meinedaten.csv darauf zugreifen.

Ein neues Projekt legen wir über die Menüleiste an (“Create a project”). Dann können wir auswählen, ob wir ein neues Arbeitsverzeichnis anlegen wollen oder das Projekt in einem bereits bestehenden Arbeitsverzeichnis abspeichern wollen. Im Projektverzeichnis legen wir dann alle Datensätze und R-Skripte ab, die wir für unser Projekt brauchen (zum Einlesen von Datensätzen siehe Daten ein- und ausgeben)

Im Alltag öffnen wir in RStudio immer erst das Projekt und dann die einzelnen R-Skripte. Ob wir gerade in einer Projektumgebung sind, können wir oben rechts in der Menüleiste erkennen (siehe Figure 1.2).

Figure 1.2: RStudio Projekt

1.5 R-Pakete

Bei R-Paketen (eng. packages) handelt es sich um Erweiterungen der Basisversion von R. Sie beinhalten zusätzliche Funktionalitäten für nahezu alle Anwendungsfälle. Im zentralen Package-Repositor CRAN finden sich viele tausende Pakete, die sich einfach nachinstallieren lassen.

Für das Seminar nutzen wir vor allem das tidyverse, eine Sammlung von verschiedenen Paketen, die einer gemeinsamen Syntax und Datenstruktur folgen. Das tidyverse hat sich de facto als Standard für das Datenhandling in R durchgesetzt.

Pakete werden mittels der Funktion install.packages("") installiert. Der Name des Pakets wird dabei zwischen die beiden Anführungszeichen eingetragen. Entsprechend lässt sich das tidyverse mit install.packages("tidyverse") installieren.

Sobald ein Paket installiert wurde, reicht es aus, es nur noch mit library(package) für die aktuelle R-Session zu laden. Entsprechend sollten R-Skripte in den ersten Zeilen die benötigten Pakete mit libraryladen. Die library()-Befehle müssen somit immer zu Beginn einer R-Session als erstes markiert und per STRG+ENTER bzw. CMD+ENTER ausgeführt werden.

Wenn wir ein Paket laden wollen, das wir noch nicht installiert haben, bemerkt RStudio dies im Normalfall und bietet bei Bedarf an, das Paket nachzuinstallieren, das noch nicht vorhanden ist (die Meldung erscheint oben im Editor). Wenn das nicht passiert und die Warmeldung in der Konsole erscheint, dass ein Paket noch nicht installiert ist, können wir es über den install.packages("") im Skript selbst installieren.

Im Falle des tidyverse lautet der Befehl dann library(tidyverse). Die Installation und Nutzung des tidyverse sieht folglich so aus:

install.packages("tidyverse") # nur einmal
library(tidyverse) # immer

Wenn wir mit library(tidyverse) das Paket laden, stehen alle Funktionen daraus direkt zur Verfügung, z.B. der Befehl filter(), der kein Teil von Base R ist. Oft brauchen wir nur eine einzige Funktion aus einem Paket, dann kann es sich lohnen, diese direkt zu verwenden. Dafür muss das Paket installiert, aber nicht geladen sein. Der Befehl dafür lautet package::function() mit zwei (!) Doppelpunkten. Damit sagen wir R, dass wir explizit die Funktion aus diesem Paket aufrufen möchten. Das hat zudem den Vorteil, dass wir beim Lesen des Codes sofort erkennen, aus welchem Paket die Funktion stammt und dies nicht erst recherchieren müssen. Ein typisches Beispiel für uns ist das Laden von SPSS-Datensätzen (mit der Endung .sav). Die Funktion dafür ist read_sav() aus dem haven Paket, aus dem wir sonst keine weiteren Funktionen benötigen:

haven::read_sav("mydata.sav")

In diesem Seminar versuchen wir, mit möglichst wenigen Zusatzpaketen auszukommen. Dort, wo es notwendig ist, verwenden wir diese expliziten Funktionsaufrufe.

1.6 R als Programmiersprache

Im Gegensatz zu vielen Statistikprogrammen wie SPSS oder Stata ist R eine vollständige Programmiersprache, mit der wir nicht nur Daten auswerten können, sondern auch Grafiken und Videos erstellen, Web-Inhalte automatisch herunterladen, Texte und Bilder analysieren und sogar Webseiten wie diese erstellen kann. Dies hat Vor- und Nachteile: Ein großer Vorteil ist die Flexibilität - fehlende Funktionen können wir selbst erstellen (oder zumeist aus einem spezialisierten Paket übernehmen), komplexe Aufgaben automatisieren (“Erstelle diese Analyse für jeden von diesen 1000 Datensätzen”) -, ein anderer ist die Aktualität. Neue Auswertungsverfahren oder Analysealgorithmen erscheinen häufig zuerst als R-Paket und erst Jahre später bei kommerziellen Statistikprogrammen.

Die Flexibilität ist auch ein Nachteil, gerade für Anfänger:innen: Es gibt unzählige Wege, zum gleichen Ergebnis zu kommen, und oft sehen diese Vorschläge, etwa in verschiedenen Lehrbüchern, auf den ersten Blick komplett unterschiedlich aus. Das ist völlig normal und kein Grund zur Sorge. Wir lernen in diesem Seminar meist nur eine Lösung für ein spezifisches Problem, aber solange wir unsere Fragen beantworten können, sind andere Lösungswege aus anderen Lehrbüchern oder mit anderen Paketen völlig in Ordnung. Wichtig ist, dass die Lösung reproduzierbar und die Ergebnisse verständlich aufbereitet und interpretiert werden.

Auf den ersten Blick wirkt das Programmieren mit R für viele schwieriger, als sich per Mausklick durch vorgefertigte Analysen zu hangeln. Im Alltag ist aber gerade der R-Code sehr praktisch: Wir können ihn per Mail oder Chat verschicken und uns so Hilfe holen, ohne Screenshots zu machen oder zu beschreiben, welche Häkchen und Menüpunkte wir in welcher Reihenfolge wo geklickt haben. Der Code macht transparent, was geschieht (oder geschehen soll), und befördert so die eigene Codier- und Data-Literacy, die vielfach im Berufsalltag nützlich ist, auch und gerade für Kommunikationswissenschaftler:innen.

1.7 Literaturtipps zum Arbeiten mit R

Gehrau, V., Maubach, K. & Fujarski, S. (2022). Einfache Datenauswertung mit R. Springer Fachmedien Wiesbaden. https://doi.org/10.1007/978-3-658-34285-2

Sauer, S. (2019). Moderne Datenanalyse mit R. Springer Fachmedien Wiesbaden. https://doi.org/10.1007/978-3-658-21587-3

Wickham, H., Çetinkaya-Rundel, M. & Grolemund, G. (2023). R for Data Science (2nd ed.). O’Reilly Media, Incorporated.

1.8 Ressourcen zum Arbeiten mit R

Arbeiten in R stellt auch fortgeschrittene Nutzer:innen immer wieder vor Herausforderungen - mal funktioniert der Code nicht (mehr) und produziert Fehlermeldungen, die nicht eindeutig sind, mal wundern wir uns über ein Ergebnis, mal sieht eine Grafik nicht so aus, wie sie aussehen soll. Für (fast) all diese Herausforderungen gibt es Lösungen.

Um diese zu finden, können wir zum einen die Hilfe von R nutzen - entweder indem wir im rechten unteren Fenster von RStudio auf “Help” klicken und dort die Suchfunktion nutzen (siehe zusätzlich auch R Grundlagen). Zum anderen gibt es zu jedem R-Paket eine Dokumentation.

Ganz oft ist es aber auch sinnvoll und hilfreich, im Internet zu recherchieren. Dabei gibt es v.a. zwei wichtige Quellen:

  1. Einschlägige Foren, z.B. Stack Overflow. Hier können Nutzer:innen Fragen posten und erhalten in vielen Fällen hilfreiche Antworten. Diese Fragen und Antworten sind öffentlich zugänglich und z.B. über eine Suchmaschinenanfrage auffindbar. Meist müssen wir also gar nicht selbst eine Frage stellen, sondern finden bereits die Lösung zum selben oder einem ähnlichen Problem.

  2. KI-Tools wie ChatGPT können hier ebenfalls eine große Hilfe sein. Sie können sowohl R-Code generieren als auch Hinweise zu Ursachen von Fehlermeldungen geben. Bitte beachten Sie bei der Nutzung: KI-Tools sind nicht immer auf dem neuesten Stand, was Paketversionen angeht, und können auch erhebliche Fehler machen. KI-Tools sollten somit nicht “blind” verwendet werden, können aber an vielen Stellen hilfreich sein. Während die Nutzung von KI-Tools für die Generierung von Text wie z.B. in Hausarbeiten nicht ohne Weiteres eingesetzt werden darf, ist dies im Kontext von Coderstellung weitgehend unproblematisch.

1.9 Hausaufgabe

  1. Installieren Sie R und RStudio auf Ihrem eigenen Rechner. Laden Sie die Seminarmaterialien als ZIP-Datei hier herunter, entpacken und öffnen Sie in RStudio das entsprechende Projekt.
  2. Legen Sie ein neues R-Skript an und…
  1. Installieren und laden Sie tidyverse. Führen Sie den Code aus.
  2. Tippen Sie 1+1 ein. Führen Sie den Code aus.