1  RStudio Workflow

1.1 Graphische Benutzeroberfläche

Bevor wir mit dem Inhalt anfangen, sollten wir uns ein wenig mit RStudio anfreunden. Öffnen Sie nun RStudio. Das Programm sollte ungefähr so aussehen:

Unter dem Menu Preferences oder Global Options kann man RStudio den eigenen Präferenzen anpassen. Wir empfehlen aber dringend, folgende zwei Optionen nicht zu aktivieren:

  1. Restore .RData into workspace at startup (sollte nicht ausgewählt sein)
  2. Save workspace to .RData on exit (Never)

Diese Optionen sind zwar manchmal verlockend, da damit alle Daten und Variablen automatisch wieder geladen werden. Es ist aber meistens besser, mit einem leeren Workspace zu beginnen, und die ausgeführten R Befehle in einem Script oder Notebook festzuhalten.

Zudem müssen Sie in den Optionen unter Code die Option use native pipe operator aktivieren.

Das RStudio GUI (Graphical User Interface) besteht aus mehreren Bereichen. Auf der linken Seite (rot markiert) erscheint die R Konsole. Hier kann R Code eingegeben werden, der dann von R interpretiert (ausgeführt) wird. Das > Zeichen ist die sogenannte R Prompt (Aufforderungszeichen). Wir können so interaktiv mit R arbeiten, und R z.B. auch als Taschenrechner benutzen:

2 + 3
[1] 5
exp(1)
[1] 2.718282
3/4
[1] 0.75
Hinweis

Wenn wir 3/4 eingeben, erscheint im Output [1] 0.75. Das [1] bedeutet, dass der Output mit dem ersten Element eines Vektor beginnt. Dies ist gleichzeitig das einzige Element, und ist somit ein Skalar (ein Skalar in R ist einfach ein Vektor mit nur einem Element, d.h. mit der Länge 1).

Rechts oben (gelb markiert) erscheinen zwei Bereiche, Environment und History. Im Environment-Bereich sehen wir alle Variablen, Datensätze und Funktionen, welche wir definiert haben. Diese erscheinen im Global Environment (Dropdown-Menü). Wenn Sie auf dieses Menü klicken, sehen Sie, welche Packages geladen sind. Wenn Sie z.B. das stats Package auswählen, sehen Sie alle Funktionen, die durch dieses Package verfügbar gemacht werden. Wir werden in Kürze mehr über Packages erfahren.

Im History-Bereich sehen Sie alle Befehle, die Sie bisher ausgeführt haben.

Rechts unten (blau markiert) erscheinen die Bereiche Files (Dateimanager), Plots, Packages und der Help Viewer.

Im Dateimanager können Sie das Arbeitsverzeichnis (working directory) wechseln und Dateien öffnen:

Hinweis

Wenn Sie im Dateimanager das Arbeitsverzeichnis wechseln, erscheint in der Konsole die Syntax für den Befehl, den R soeben ausgeführt hat. In diesem Fall ist das setwd(...). Mit getwd() kann man R fragen, in welchem Arbeitsverzeichnis man sich befindet.

1.2 Packages

Bevor wir anfangen, mit RStudio zu arbeiten, müssen wir einige Packages installieren. Packages stellen zusätzliche Funktionen zur Verfügung, welche nicht in der Basisausstattung von R (base R) enthalten sind. Wir installieren zunächst eine Sammlung von Packages zur Datenmanipulation (tidyr, dplyr, forcats), zum Importieren von Datenfiles (readr) und für Grafiken (ggplot2). Da diese Packages alle Teil des Meta-Packages tidyverse sind, können sie alle zusammen mit folgendem Befehl installiert werden, welchen wir in die Konsole eingeben:

install.packages("tidyverse")

Anschliessend können wir die Packages so laden:

library(tidyverse)

Als Alternative dazu können Packages über das GUI installiert

und geladen werden.

Ausserdem können so alle Packages aktualisiert werden (Update) - es empfiehlt sich, dies regelmässig zu tun.

Hinweis

Bitte installieren Sie nun die tidyverse Packages. Weitere Packages werden wir installieren, wenn wir sie benötigen.

R Packages werden auf einem Server bereitgestellt: The Comprehensive R Archive Network, oder CRAN. Unter Task Views sehen Sie Sammlungen von Packages zu bestimmten Themen; die Task View zum Thema Psychometrik finden Sie hier: CRAN Task View: Psychometric Models and Methods.

Da die meisten Statistiker:innen mit R arbeiten, gibt es fast zu jedem Thema ein R Package, oder zumindest R Code, den man mit einer gezielten Suche im Internet finden kann (siehe auch nächster Abschnitt).

1.3 Help

Selbst wenn man täglich mit R arbeitet, ist es (fast) unmöglich, sich alle Funktionen zu merken. R hat ein sehr gutes eingebautes Hilfesystem, welches aber für Anfänger nicht leicht verständlich ist. Dies ist im Bereich Help zugänglich:

Sehr empfehlenswert ist die Question und Answer Website Stackoverflow - hier finden sich Antworten auf (fast) alle möglichen Fragen (es gibt meistens jemanden, der oder die das gleiche Problem schon einmal hatte).

Wenn man gezielt suchen will, kann man im Suchfenster des Help Viewers einen Begriff eingeben. Wenn man einfach herausfinden möchte, welche Funktionen in einem installierten Package verfügbar sind, kann man im Packages-Bereich nach einem Package suchen, und dann auf dieses klicken, um die Hilfeseiten zu sehen.

Übung

Probieren Sie es selber aus: suchen Sie nach dem Package dplyr. Wenn Sie darauf klicken, sehen sie zuoberst einen Link zu User guides, package vignettes and other documentation. Vignettes sind als Einführungen gedacht.

Wenn man in der Konsole schnell Hilfe zu einer Funktion erhalten will, kann man so vorgehen:

help(mean) 

Dies öffnet die Hilfeseite für die mean Funktion. Alternativ dazu kann man auch ?mean eingeben.

Man kann aber auch zu einem Thema Hilfe suchen. Wenn wir z.B. Hilfe zum Thema Zahlen auf- oder abrunden brauchen, können wir help("round") eingeben. Weitere Hilfe zur help() Funktion finden Sie so: help(help).

1.4 Arbeiten mit RStudio

1.4.1 Projekte

Nun können wir mit der Arbeit beginnen. Es empfiehlt sich, ein Projekt anzulegen, über das Menu File > New Project. Sie können das Projekt nennen, wie Sie wollen - wir haben den Namen programmieren-mit-R gewählt.

Der Vorteil eines Projekts (im Vergleich zu einer einzelnen neuen R Script-Datei) besteht zunächst darin, dass RStudio beim einem Neustart wieder alle Files öffnet. Ausserdem kann man beliebig viele Projekte erstellen, und entweder gleichzeitig offen haben, oder zwischen ihnen wechseln. Des weiteren wird beim Öffnen eines Projekts das Arbeitsverzeichnis automatisch auf den Ordner definiert, in dem sich die Projekt-Datei befindet. Man muss sich also dann nicht mehr um das working directory kümmern und kann z.B. Daten- oder Skriptdateien direkt vom Projektordner aus aufrufen, ohne jedes Mal den vollständigen Pfad definieren zu müssen.

1.4.2 Konsole

Es gibt im Wesentlichen zwei Vorgehensweisen, wenn man mit R arbeiten will: man kann 1) entweder Befehle direkt in die Konsole eintippen, oder 2) eine Textdatei (R Script-Datei öffnen, Befehle in die Datei schreiben, und diese dann an die Konsole schicken.

Mit der Konsole arbeiten ist zu empfehlen, wenn man schnell etwas ausprobieren will, oder wenn man Befehle wiederholen will (dies kann man mit den Up/Down-Pfeiltasten machen), aber es ist meistens besser, wenn man mit einer Textdatei arbeitet.

Hinweis

Die History der eingegebenen Befehle kann man in der Konsole mit der Tastenkombination CMD + Up auf macOS oder CTRL + Up anzeigen lassen.

Manchmal passiert es, dass man einen Befehl unvollständig eingibt. R wartet dann auf weiteren Input, und zeigt dies mit einem + an.

Hier wurde z.B. die Klammer vergessen:

> mean(x
+ 

Nun muss man entweder die fehlende Klammer eingeben, um den Befehl zu vervollständigen, oder man kann mit der ESCAPE-Taste abbrechen.

Für den Fall, dass R abstürzt, kann man mit Hilfe des Menus Session > Interrupt R oder Session > Terminate R auswählen.

1.4.3 R Script

Wir öffnen und speichern ein neues R Script (Textdatei mit dem Suffix .R). Geben Sie hier nun z.B.

2 + 3
[1] 5

ein, wählen sie den Text aus, und klicken sie auf Run. Sie haben auch im Menü Code verschiedene Möglichkeiten (und Tastaturkürzel), um Code auszuführen.

Der Output erscheint in der Konsole.

Übung

Geben Sie folgendes ein: x <- c(101, 105, 99, 87, 102, 98), und führen sie den Code aus.

Sie haben gerade einen Vektor definiert. Im Output erscheint

> x <- c(101, 105, 99, 87, 102, 98)

und im Environment sehen Sie, dass x ein num [1:6] ist. Dies bedeutet, dass x ein numerischer Vektor der Länge 6 ist.

Übung

Geben Sie nun auch folgendes ein: boxplot(x), und führen sie den Code aus.

Der Boxplot erscheint im separaten Plots Viewer.

R Scripts eignen sich am besten, wenn man längere Programme schreiben oder ganze Datenanalysen speichern will. Für die interaktive Arbeit gibt es R Notebooks, welche wir uns als nächstes ansehen werden.

1.4.4 R Notebooks verwenden

R Notebooks sind “RMarkdown-interaktiv” (RMarkdown ist eine simple Markup-Sprache), und zeigen Text (Prosa), R Code und Grafiken im selben Dokument an.

Öffnen Sie eine neues Notebook File:

\(~\)

\(~\)

Sie können dies nun speichern. Notebooks (und alle RMarkdown Dokumente) erhalten das Suffix .Rmd.

Das Notebook sollte so aussehen:

\(~\)

Im Notebook sehen Sie sowohl Text mit der R Markdown Markup-Sprache, als auch R Code-Chunks. Diese können ausgeführt werden.

\(~\)

Wenn Sie auf den grünen Pfeil klicken erscheint der Output direkt unter dem Code-Chunk.

Klicken Sie nun auf Preview, oder benützen Sie die entsprechende Tastenkombination: CMD + Shift + K (macOS) oder CTRL + Shift + K (Windows). RStudio wird Sie nun darauf hinweisen, dass fehlende R Packages installiert werden müssen (dies ist nur beim ersten mal der Fall). Stimmen Sie der Installation zu, das Notebook wird dann anschliessend kompiliert, und es erscheint ein HTML Dokument im Viewer. Dieses beinhaltet sowohl Text als auch den evaluierten R Code, und kann als eigenständiges Dokument weitergegeben werden. Ein weiterer Vorteil eines Notebooks: Sie können daraus ein Word-Dokument erstellen:

Probieren Sie es selber aus.

1.4.5 Tab completion

RStudio verfügt über eine weitere sehr hilfreiche Funktion: Tab completion. Wenn man in der Konsole oder in einem Script/Notebook den Anfang eines Befehls eingibt, und dann die Tabulator-Taste drückt, erscheint ein Menu mit möglichen completions. Wenn wir z.B. einen Mittelwert berechnen wollen, schreiben wir mean, und drücken dann Tab. Es erscheint eine Liste mit möglichen Optionen.

\(~\)

Wenn man ausserdem eine Funktion eingegeben hat, und innerhalb der Klammern Tab drückt, erscheint eine Liste mit den Argumenten dieser Funktion.

\(~\)

Eine weitere nützliche Funktion: wenn wir nicht sicher sind, wie eine Funktion heisst, aber wir wissen, in welchem Package wir sie finden, können wir den Package Namen schreiben, gefolgt von ::, und dann Tab drücken. RStudio gibt uns eine Liste mit allen Funktion dieses Packages. Schreiben Sie:

dplyr::

drücken Tab, und RStudio übernimmt den Rest.

1.4.6 Tasten

Wenn wir mit R arbeiten, werden wir folgende Zeichen häufig brauchen:

[ ]   Square braces (eckige Klammern)
{ }   Curly braces (geschweifte Klammern)
$     Dollar key (Dollarzeichen - für das Subsetting/Auswählen von Variablen benötigt)
#     Hash (pound) key (Rautezeichen - für Kommentare in R Script Dateien)
~     Tilde (für die Model Notation/Modellformulierung)
|     Vertical bar (senkrechter Strich - als logischer Operator benötigt, siehe nächstes Kapitel)
`     Backtick (Gravis-Akzent - wird hauptsächlich für code chunks benötigt, muss selten manuell eingegeben werden)

Leider sind manche dieser Zeichen auf Tastaturen mit Schweizerischem Tastaturlayout nicht leicht auffindbar.

Übung

Nehmen Sie sich ein paar Momente Zeit, diese Zeichen auf Ihrer Tastatur zu suchen.

Hinweis

Die öffnende eckige Klammer erhält man mit ALT + 5 (praktischerweise fügt R die öffnende und die schliessende Klammer in freudiger Erwartung eines Befehls gleich zusammen ein), die schliessende mit ALT + 6. Für geschweifte Klammern benutzen Sie analog ALT + 8 und ALT + 9. Das Rautezeichen erhalten Sie mit ALT + 3, die Tilde mit ALT + N, den senkrechten Strich mit ALT + 7.