3  Daten einlesen

3.1 Lernsteuerung

3.1.1 Standort im Lernpfad

Abb. Abbildung 1.2 den Standort dieses Kapitels im Lernpfad und gibt damit einen Überblick über das Thema dieses Kapitels im Kontext aller Kapitel.

3.1.2 Lernziele

  • Sie können R und RStudio starten.
  • Sie können R-Pakete installieren und starten.
  • Sie können Variablen in R zuweisen und auslesen.
  • Sie können Daten in R importieren.
  • Sie können den Begriff Reproduzierbarkeit definieren.

3.1.3 Überblick

Abbildung 1.2 zeigt Ihnen, wo auf unserer Reise durch die Datenanalyse sich dieses Kapitels verorten lässt.

Abbildung 3.1 zeigt den typischen Lernverlauf in Zusammenhang mit Datenanalyse (und R) an: Es gibt Höhen und Tiefen. Die wechseln sich ab. Das ist ganz normal!

Abbildung 3.1: Life is a roller-coaster. You just have to ride it. Image credit: Allison Horst; https://github.com/allisonhorst/stats-illustrations, CC-BY

3.1.4 Ab diesem Kapitel benötigen Sie R

Bitte stellen Sie sicher, dass Sie R rechtzeitig einsatzbereit haben. Weiter unten in diesem Kapitel finden Sie Installationshinweise (Kapitel 3.3). Falls Sie dieses Kapitel zum ersten Mal bzw. sich noch nicht mir R auskennen, werden Sie vielleicht einigen Inhalten begegnen, die Sie noch nicht gleich verstehen. Keine Sorge, das ist normal. Mit etwas Übung wird Ihnen bald alles schnell von der Hand ghen.

3.1.5 Begleitvideos

Schauen Sie sich malden YouTube-Kanal @sebastiansauerstatistics1 an und dort die Playlist “R”2. Dort finden Sie einige Videos zum Thema R.

3.2 Errrstkontakt

3.2.1 Warum R?

Gründe, die für den Einsatz von R sprechen:

  1. 🆓 R ist kostenlos, andere Softwarepakete für Datenanalyse sind teuer. 💸

  2. 📖 R und R-Befehle sind quelloffen, d.h. man kann sich die zugrundeliegenden Computerbefehle anschauen. Jeder kann prüfen, ob R vernünftig arbeitet. Alle können beitragen.

  3. 🆕 R hat die neuesten Methoden.

  4. 🫂 R hat eine große Community.

  5. 🪡 R ist maßgeschneidert für Datenanalyse.

Allerdings gibt es auch abweichende Meinungen, s. Abbildung 3.2.

Abbildung 3.2: Manche finden Excel cooler als R, nicht wahr, Bill Gates?

3.2.2 R und Reproduzierbarkeit

Definition 3.1 (Reproduzierbarkeit) Ein (wissenschaftlicher) Befunde ist reproduzierbar, wenn andere Analystis mit dem gleichen experimentellen Setup zum gleichen Ergebnis (wie in der ursprünglichen Analyse) kommen (Plesser, 2018). \(\square\)

Definition 3.1 ist, etwas überspitzt, in Abbildung 3.3 wiedergegeben.

🔢 + 🤖 + 🔬 = 🤩

Abbildung 3.3: Daten + Syntax + genaue Beschreibung der Messungen = reproduzierbar

Beispiel 3.1 (Aus der Forschung: Reproduzierbarkeit in der Psychologie)  

🧑‍🎓 Wie ist es um unsere Wissenschaft, Psychologie, bestellt? Haben die Befunde Hand und Fuß?

Obels et al. (2020) haben die Reproduzierbarkeit in psychologischen Studien untersucht. Sie berichten folgendes Ergebnis

We examined data and code sharing for Registered Reports published in the psychological literature from 2014 to 2018 and attempted to independently computationally reproduce the main results in each article. Of the 62 articles that met our inclusion criteria, 41 had data available, and 37 had analysis scripts available. Both data and code for 36 of the articles were shared. We could run the scripts for 31 analyses, and we reproduced the main results for 21 articles. \(\square\)

3.2.3 R & RStudio

Wenn wir sagen, “wir arbeiten mit R”, dann heißt das in unserem Fall “wir arbeiten mit R und mit RStudio”.

💖

Ismay & Kim (2020) zeigen eine schöne Analogie, was der Unterschied von R und RStudio ist, s. Abbildung 3.4.3

Abbildung 3.4: R vs. RStudio: R macht die Arbeit, RStudio ist für Komfort und Übersicht

Kurz gesagt: Das eigentlich Arbeiten besorgt R. Für den Komfort und die Schönheit ist RStudio zuständig. Auch eine Art von Arbeitsteilung!

Hinweis
  • R: 🏋️‍♀️
  • RStudio: 💅 \(\square\)

Hier sehen Sie einen Screenshot von der Oberfläche von RStudio, s. Abbildung 3.5.

Abbildung 3.5: So sieht RStudio aus

3.3 Installation von R und RStudio

3.3.1 Installation von R

R ist ein Softwarepaket für statistische Berechnungen4. Laden Sie es für Ihr Betriebssytem herunter:

Mehr Infos zu R finden Sie unter https://cloud.r-project.org/.5

Wenn Sie die Installationsdatei heruntergeladen haben, öffnen Sie diese Datei (Doppelklick) und Sie werden durch die Installation geführt.6

3.3.2 Installation von RStudio Desktop

RStudio ist eine graphische Benutzeroberfläche (graphical user interface, GUI) für R, plus ein paar Goodies7.

Laden Sie zunächst die Desktop-Version von RStudio herunter für Ihr Betriebssystem (Windows, MacOS, Linux) vom Anbieter (Posit) herunter. 8.

Wenn Sie die Installationsdatei heruntergeladen haben, öffnen Sie diese Datei (Doppelklick) und Sie werden durch die Installation geführt.9

3.3.3 RStudio Cloud

3.3.3.1 RStudio Cloud als Alternative zu RStudio

RStudio Cloud10 ist ein Webdienst von Posit/RStudio (zum Teil kostenlos), also RStudio online: Man kann damit online mit R arbeiten. Die Oberfläche ist praktisch identisch zur Desktop-Version, s. Abbildung 3.6. Sie können es als Alternative zur Installation von RStudio auf Ihrem Computer verwenden. Ein Vorteil von RStudio Cloud ist, dass man als Nutzer nichts installieren muss und dass es auch auf Tablets läuft (im Gegensatz zur Desktop-Version von RStudio). Ein Nachteil ist, dass es etwas langsamer ist und nur für ein gewisses Zeitvolumen kostenlos. Sie müssen sich ein Konto anlegen, um den Dienst nutzen zu können.

Abbildung 3.6: So sieht RStudio Cloud aus. Genau wie RStudio Desktop

3.3.3.2 Vertiefung

Wenn Ihr Dozent Ihnen einen Projektordner bzw. einen Link dazu bereitstellt, ist das komfortabel, da der Dozent dann schon Pakete installieren, Daten bereitstellen und andere Nettigkeit vorbereiten kann für Sie. Allerdings müssen Sie den Projektordner in Ihrem Konto abspeichern, wenn Sie etwas speichern möchten, da Sie vermutlich keine Schreibrechte im Projektordner Ihres Dozenten haben. Klicken Sie dazu auf “Save a permanent copy”, s. Abbildung 3.7.

Abbildung 3.7: Einen Projektordner im eigenen Konto abspeichern, um Schreibrechte zu haben

Sie können auch von der Cloud exportieren, also Ihre Syntaxdatei herunterladen. Klicken Sie dazu im Reiter “Files” auf More > Export ....

3.4 RStudio starten, nicht R

Wir verwenden beide Programme (R und RStudio). Aber wir öffnen nur RStudio. RStudio findet selbständig R und öffnet dieses “heimlich”. Öffnen Sie nicht noch extra R (sonst wäre R zweifach geöffnet).

Anstelle von RStudio Desktop (auf Ihrem Computer/Desktop) können Sie auch die RStudio Cloud (die Online-Version ) starten.

3.5 R-Pakete

3.5.1 Was sind R-Pakete?

Typisch für R ist sein modularer Aufbau: Man kann eine große Zahl an Erweiterungen (“Pakete”, engl. packages) installieren, alle kostenlos. In R Paketen “wohnen” R-Befehle, also Dinge, die R kann, “Skills” sozusagen. Außerdem können in R-Paketen auch Daten bereitgestellt werden. Damit man die Inhalte eines R-Pakets nutzen kann, muss man es zuerst installieren und dann starten.

Man kann sich daher ein R-Paket vorstellen wie ein Buch: Wenn R es gelesen hat, dann kennt es die Inhalte. Diese Inhalte könnten irgendwelche Formeln, also Berechnungen sein. Es könnte aber die “Bauanleitung” für ein schönes Diagramm sein.

Ist ein spezielles R-Paket auf Ihrem Computer installiert, so können Sie diese Funktionalität nutzen.

Die Zahl an diesen “Paketen” ist groß; zur Verdeutlichung s. Abbildung 3.8.

(a) Containershiff mit vielen Paketen, Corey Seeman, CC-BY-NC 20, Flickr.com
(b) Die Anzahl der R-Pakete ist exponenziell gewachsen

Es gibt viele R-Pakete.

Abbildung 3.8

Erweiterungen kennt man von vielen Programmen, sie werden auch Add-Ons, Plug-Ins oder sonstwie genannt. Man siehe zur Verdeutlichung Erweiterungen beim Broswer Chrome, Abbildung 3.9.

Abbildung 3.9: Erweiterungen beim Browser Chrome

Die Anzahl der R-Pakete ist groß; allein auf dem “offiziellen Web-Store” (nennt sich “CRAN”) von R gibt es ca. 20,000 Pakete (vgl. Abbildung 3.8 (b)); Stand: 2022; Quelle). Und es kommen immer mehr dazu.

3.5.2 Pakete installieren

Wie jede Software muss man Pakete (Erweiterungen für R) erst einmal installieren, bevor man sie verwenden kann. Ja, einmal installieren reicht.

Das geht komfortabel, wenn man beim Reiter Packages auf Install klickt (s. Abbildung 3.10) und dann den Namen des zu installierenden Pakets eingibt.

(a) Klicken Sie auf “Install” im Reiter “Packages”, um R-Pakete zu installieren
(b) Geben Sie den Namen des zu installierenden R-Pakets in dieser Maske ein
Abbildung 3.10: So installiert man Pakete in R.

Abbildung 3.11 verdeutlicht, wo Sie in RStudio klicken müssen, um Pakete zu installieren.

Abbildung 3.11: So kann man R-Pakete installieren in RStudio

🧑‍🎓Welche R-Pakete sind denn schon installiert?

Im Reiter Packages können Sie nachschauen, welche Pakete auf Ihrem Computer schon installiert sind. Diese Pakete brauchen Sie logischerweise dann nicht noch mal installieren, s. Abbildung 3.12.

Abbildung 3.12: So sehen Sie, ob ein R-Paket auf Ihrem System installiert ist

Alternativ können Sie zum Installieren von Paketen auch den Befehl install.packages() verwenden. Also zum Beispiel install.packages(tidyverse) um das Paket tidyverse zu installieren.

🧑‍🎓Ja, aber welche R-Pakete “soll” ich denn installieren, welche brauch ich denn?

Im Moment sollten Sie die folgenden Pakete installiert haben:

  • tidyverse
  • easystats

Wenn Sie die noch nicht installiert haben sollten, dann können Sie das jetzt ja nachholen.11

Vorsicht

Bevor Sie ein R-Paket (oder überhaupt irgendwelche Software) installieren/updaten, sollten Sie das R-Paket schließen/beenden. Sonst schrauben Sie an einem elektrischen Gerät herum, das noch unter Strom steht (nicht gut). Die einfachste Art, alle Pakete zu beenden ist, Session > Restart R zu klicken (in RStudio).\(\square\)

3.5.3 Pakete starten

Wenn Sie ein Softwareprogramm - nichts anderes sind R-Pakete - installiert haben, müssen Sie es noch starten.

Merke: Ein bestimmtes R-Paket muss man nur einmalig installieren. Aber man muss es jedes Mal neu starten, wenn man R (bzw. RStudio) startet.

Sie erkennen leicht, ob ein Paket gestartet ist, wenn Sie ein Häkchen vor dem Namen des Pakets in der Paketliste (Reiter Packages) sehen, s. Abbildung Abbildung 3.10 (a).12

3.6 Mit R arbeiten

3.6.1 Projekte in R

Ein Projekt in RStudio (s. Abbildung 3.13) ist letztlich ein Ordner, der als “Basis” für eine Reihe von Dateien verwendet wird. Sagen wir, das Projekt heißt cool_stuff. RStudio legt uns diesen Ordner an einem von uns gewählten Platz auf unserem Computer an. Das ist ganz praktisch, weil man dann sagen kann “Hey R, nimmt die Datei ‘daten.csv’”, ohne einen Pfad anzugeben. Vorausgesetzt, die Datei liegt auch im Projektordner (cool_stuff).

Projekte kann anlegen mit Klick auf das Icon, das einen Quader mit dem Buchstaben R darin anzeigt (s. Abbildung 3.13 (a)). RStudio-Projekte machen Ihr Leben leichter (s. Abbildung 3.13).

(a) RStudio-Projekte, Beispiele
(b) RStudio-Projekte sind viel sicherer als das Arbeitsverzeichnis von Hand zu wählen oder mit Pfaden herumzubasteln. Image credit: Allision Horst
Abbildung 3.13: Nutzen Sie RStudio-Projekte, das macht Ihr Leben leichter.

3.6.2 Skriptdateien

Die R-Befehle (“Syntax”) schreiben Sie am besten in eine speziell dafür vorgesehene Textdatei in RStudio. Eine Sammlung von (R-)Computer-Befehlen nennt man auch ein Skript, daher spricht man auch von einer Skriptdatei.

3.6.2.1 So öffnen Sie eine neue Skriptdatei

Um eine neue R-Skriptdatei zu öffnen, klicken Sie auf das Icon, das ein weißes Blatt mit einem grünen Pluszeichen zeigt, s. Abbildung 3.14.

(a) So erstellen Sie eine neue Skriptdatei
(b) Klicken Sie auf das Icon mit dem leeren Blatt und dem grünen Plus
Abbildung 3.14: Es gibt verschiedene Wege, um eine neue R-Skript-Datei in RStudio zu öffnen.

3.6.2.2 So speichern Sie Ihre Skripdatei

Vergessen Sie nicht zu speichern, wenn Sie ein tolles Skript geschrieben haben. Dafür gibt es mehrere Möglichkeiten:

  1. Tastaturkürzel *Strg+S
  2. Menü: File > Save
  3. Klick auf das Icon mit der Diskette, s. Abbildung 3.14.

3.6.2.3 So öffnen Sie eine Skriptdatei

Eine Skriptdatei können Sie in typischer Manier öffnen:

  1. Strg+O
  2. Klick auf das Icon mit der Akte und dem grünen Pfeil (vgl. Abbildung 3.14)
  3. Menü: File > Open File...

3.6.3 Quarto-Dokumente

Quarto ist ein Programm zum Erstellen von Texten, in das man R-Syntax einfügen kann. Die Ausgaben der R-Befehle werden dann direkt im Dokument eingebunden. Abbildung 3.15 zeit ein Beispiel für ein Quarto-Dokument.

Hinweis

Quarto ist eine komfortable und leistungsfähige Methode, um Dokumente mit R-Syntax zu schreiben. Sie sind aber nicht verpflichtet, Quarto zu nutzen. Stattdessen können Sie Ihre Syntax auch in Skriptdateien schreiben. \(\square\)

Abbildung 3.15: Dokumente schreiben mit Quarto

Wenn Sie Quarto nutzen möchten, müssen Sie es zunächst installieren, d.h. herunterladen. Dann können Sie in RStudio Quarto-Dateien erstellen.13 Ein neues Quarto-Dokument können Sie erstellen mit Klick auf File > New File > Quarto Document ….14

3.7 Errisch für Einsteiger

Vorsicht

R ist penibel: So sind name und Name zwei verschiedene Variablen für R. Groß- und Kleinschreibung wird von R streng beachtet! Hingegen ist es R egal, ob Sie zur besseren Übersichtlichkeit Leerzeichen in Ihre Syntax tippen. Ausnahme sind spezielle Operatoren wie <- oder <=.

Eine gute Nachricht: Wenn R etwas von WARNING (bzw. Warnung) sagt, können Sie das zumeist ignorieren. Eine Warnung ist kein Fehler (ERROR) und meistens nicht gravierend oder nicht dringend. Ihre Syntax läuft trotzdem durch. Im Zweifel ist Googeln eine gute Idee. Nur wenn R von Error spricht, ist es auch ein Fehler und Ihre Syntax läuft nicht durch.\(\square\)

3.7.1 Variablen

In jeder Programmiersprache kann man Variablen definieren, so auch in R:

richtige_antwort = 42
falsche_antwort = 43
typ = "Antwort"
ist_korrekt = TRUE

Alternativ zum Gleichheitszeichen = können Sie auch (synonym) den Zuweisungspfeil <- verwenden. Beides führt zum gleichen Ergebnis. Allerdings ist der Zuweisungspfeil präziser, und sollte daher bevorzugt werden.

Der Zuweisungspfeil <- bzw. das Gleichheitszeichen = definiert eine neue Variable (oder überschreibt den Inhalt, wenn die Variable schon existiert).15.

richtige_antwort <- 42
falsche_antwort <- 43
typ <- "Antwort"
ist_korrekt <- TRUE

Sie können sich eine Variable wie einen Becher oder Behälter vorstellen, der bestimmte Werte enthält. Auf dem Becher steht (mit Edding geschrieben) der Name des Bechers. Natürlich können Sie die Werte aus dem Becher entfernen und sie durch neue ersetzen (vgl. Abbildung 3.16).

Abbildung 3.16: Variablen zuweisen

R kann übrigens auch rechnen. Probieren Sie es doch gleich mal hier aus!

die_summe <- falsche_antwort + richtige_antwort

Aber was ist jetzt der Wert, der “Inhalt” der Variable die_summe?

Um den Wert, d.h. den Inhalt einer Variablen in R auszulesen, geben wir einfach den Namen des Objekts ein:

die_summe
## [1] 85

Was passiert wohl, wenn wir die_summe jetzt wie folgt definieren?

die_summe <- falsche_antwort + richtige_antwort + 1

Wer hätt’s geahnt:

die_summe
## [1] 86

Variablen können auch “leer” sein:

alter <- NA
alter
## [1] NA

NA steht für not available, nicht verfügbar und macht deutlich, dass hier ein Wert fehlt.

🧑‍🎓 Wozu brauche ich bitte fehlende Werte?!

Fehlende Werte sind ein häufiges Problem in der Praxis. Vielleicht hat sich die befragte Person geweigert, ihr Alter anzugeben16. Oder als Sie die Daten in Ihren Computer eingeben wollten, ist Ihre Katze über die Tastatur gelaufen und alles war futsch…

3.7.2 Funktionen (“Befehle”)

Das, was R kann, ist in “Funktionen” hinterlegt. Genauer gesagt ist “Befehl” eine Funktion.

Definition 3.2 (Funktion) Eine Funktion ist eine Regel, die jedem Eingabewert (auch Argument genannt) einen Ausgabewert zuordnet. Man kann sich Funktionen als Maschinen vorstellen, die Eingabedaten in Ausgabedaten umwandeln, vgl. Abbildung 3.17. \(\square\)

3.7.2.1 Eine erste Funktion: Vektoren erstellen

Ein Beispiel für eine solche Funktion könnte sein: “Berechne den Mittelwert dieser Datenreihe” (schauen wir uns gleich an).

Das geht so:

Antworten <- c(42, 43)

Der Befehl c (c wie combine) fügt mehrere Werte zusammen zu einer “Liste” (einem Vektor).17

Definition 3.3 Als Vektor bezeichnen wir eine geordnete Folge von Werten. In R kann man sie mit der Funktion c() erstellen. Die Werte eines Vektors bezeichnet man als Elemente. \(\square\)

Mit dem Zuweisungspfeil geben wir diesem Vektor einen Namen, hier Antworten. Dieser Vektor besteht aus zwei Werten, zuerst 42, dann kommt 43.

Beispiel 3.2 (Beispiele für Vektoren) Vektoren können (praktisch) beliebig lang sein, z.B. drei Elemente.

x <- c(1, 2, 3)
y <- c(2, 1, 3)  # x und y sind ungleich (Reihenfolge der Werte)
z <- c(3.14, 2.71)  
namen <- c("Anni", "Bert", "Charli") # Text-Vektor

Zwei wichtige Typen von Vektoren sind numerische Vektoren (reelle Zahlen; in R auch als numeric oder double bezeichnet) und Textvektoren, in R auch als String oder character bezeichnet.

Beispiel 3.3 Weitere Beispiel für Funktionen sind:

  • “Erstelle eine Liste (Vektor) von Werten”.
  • “Lade dieses R-Paket.”
  • “Gib den größten Wert dieser Datenreihe aus.” \(\square\)

3.7.3 Unsere erste statistische Funktion

Jetzt wird’s ernst. Jetzt kommt die Statistik. 🧟 Berechnen wir also unsere erste statistische Funktion: Den Mittelwert. Puh.

mean(Antworten)
## [1] 42.5

Sie hätten Antworten auch durch c(42, 43) ersetzen können, so haben Sie ja schließlich die Variable gerade definiert.

R arbeitet so einen “verschachtelten” Befehl von innen nach außen ab:

Start: mean(Antworten)

  ⬇️ 

Schritt 1: mean(c(42, 43))

  ⬇️ 

Schritt 2: 42.5

3.7.3.1 Schema einer Funktion

Abbildung 3.17 stellt eine Funktion schematisch dar.

Abbildung 3.17: Schema einer Funktion

3.7.3.2 Argumente einer Funktion

Eine Funktion hat einen oder mehrere Inputs, das sind Daten oder Verarbeitungshinweise, die man in die Funktion fun eingibt, bevor sie loslegt. Eine Funktion hat immer (genau) eine Ausgabe (Output), in der das Ergebnis einer Funktion ausgegeben wird.

Definition 3.4 (Argumente einer Funktion) Die “Trichter” einer (R-)Funktion, in denen man die Eingaben “einfüllt”, nennt man auch Argumente.\(\square\)

So hat die Funktion mean() z.B. folgende Argumente, s. Listing 3.1.

Listing 3.1: Die Argumente der R-Funktion mean
mean(x, trim = 0, na.rm = FALSE, ...)
  • x: das ist der Vektor, für den der Mittelwert berechnet werden soll
  • trim = 0: Sollen die extremsten Werte von x lieber “abgeschnitten” werden, also nicht in die Berechnung des Mittelwerts einfließen?
  • na.rm = FALSE: Wie soll mit fehlenden Werten NA umgegangen werden? Im Standard liefert mean18 NA zurück. R schwenkt sozusagen die rote Fahne, um zu signalisieren, Achtung, Mensch, hier ist irgendwas nicht in Ordnung. Setzt man aber na.rm = TRUE, dann entfernt (remove, rm) R die fehlenden Werte und berechnet den Mittelwert.
  • ... heißt “sonstiges Zeugs, das manchmal eine Rolle spielen könnte”; darum kümmern wir uns jetzt nicht.

Einige Argumente haben einen Standardwert bzw. eine Voreinstellung (engl. default). So wird bei der Funktion mean im Standard nicht getrimmt (trim = 0) und fehlende Werte werden nicht entfernt (na.rm = FALSE).

Hinweis

Wenn ein R-Befehl ein Argument mit Voreinstellung hat, brauchen Sie dieses Argument nicht zu befüllen. In dem Fall wird auf den Wert der Voreinstellung zurückgegriffen. Argumente ohne Voreinstellung - wie x bei mean() - müssen Sie aber auf jeden Fall mit einem Wert befüllen. Man würde also mean zumeist so aufrufen: mean(x). \(\square\)

Bei jedem R-Befehl haben die Argumente eine bestimmte Reihenfolge, etwa bei mean(): mean(x, trim = 0, na.rm = FALSE, ...).

(Nur) wenn man die Argumente in ihrer vorgegebenen Reihenfolge anspricht, muss man nicht den Namen des Arguments anführen:

mean(Antworten, 0, FALSE)

Hält man sic aber nicht an die vorgebene Reihenfolge, so weiß R nicht, was zu tun ist und flüchtet sich in eine Fehlermeldung:

mean(Antworten, FALSE, 0)  # FALSCH, DON'T DO IT 🙅‍♀️
## Error in mean.default(Antworten, FALSE, 0): 'trim' must be numeric of length one

Wenn man die Namen der Argumente anspricht, ist die Reihenfolge egal:

mean(na.rm = FALSE, x = Antworten)  # ok
mean(trim = 0, x = Antworten, na.rm = TRUE)  # ok

Übrigens: Leerzeichen sind R fast immer egal. Aus Gründen der Übersichtlichkeit sollte man aber Leerzeichen verwenden. In diesen Fällen sind Leerzeichen nicht erlaubt:

  • <-
  • <= etc.
  • Variablennamen

3.7.3.3 Achtung bei fehlenden Werten

Sagen wir, wir haben einen fehlenden Wert in unseren Daten:

Antworten <- c(42, 43, NA)
Antworten
## [1] 42 43 NA

Wenn wir jetzt den Mittelwert berechnen wollen, quittiert R das mit einem schnöden NA. NA steht für not available, ist also ein Hinweis, dass Werte fehlen.

mean(Antworten)
## [1] NA

R meint es gut mit Ihnen19. Stellen Sie sich vor, dass R Sie auf dieses Problem aufmerksam machen möchte:

🤖 Achtung, lieber Herr und Gebieter, du hast nicht mehr alle Latten am Zaun, will sagen, alle Daten im Vektor!

(Danke, R.)

Möchten Sie aber lieber R dieses Verhalten austreiben, so befüllen Sie das Argument na.rm mit dem Wert TRUE.20

mean(Antworten, na.rm = TRUE)
## [1] 42.5

Übungsaufgabe 3.1 (Geben Sie lustige Bedeutungen an, was “NA” noch bedeuten könnte!)  

🤖 Wie wäre es mit “nebulöse Anomalie” oder “nix-checkender Angeber” oder “nölender Automat”.

🧑‍🎓 Hm…

\(\square\)

3.7.4 Vektorielles Rechnen

Definition 3.5 Das Rechnen mit Vektoren in R bezeichnen wir als vektorielles Rechnen. \(\square\)

Vektorielles Rechnen ist ein praktische Angelegenheit, man kann z.B. folgende Dinge einfach in R ausrechnen.

Gegeben sei x als Vektor (1, 2, 3). Dann können wir die Differenz (Abweichung) jedes Elements von x zum Mittelwert von x komfortabel so ausrechnen:

x - mean(x)
## [1] -1  0  1

Etwas fancier ausgedrückt: Wir haben die Funktion mit Namen “Differenz” (“Minus-Rechnen”) auf jedes Element von x angewandt. Im Einzelnen haben wir also folgenden drei Differenzen ausgerechnet:

1 - 2
2 - 2
3 - 2
Abbildung 3.18: Schema des vektoriellen Rechnens: Eine Funktion wird auf jedes Elemnt eines Vektors angewandt

3.7.5 R-Quiz

Übungsaufgabe 3.2 Ihre R-Muskeln sind gestählt? 💪 Oder doch noch nicht so ganz ausdefiniert? 😤 Macht nichts! Trainieren Sie sich mit dem R-Quiz auf der Datenwerk-Webseite21! \(\square\)

3.7.6 Ich brauche R-Hilfe!

  • Wo finde ich Hilfe zu einer bestimmten Funktion, z.B. fun()? Geben Sie dazu folgenden R-Befehl ein: help(fun). Alternativ geben Sie den Namen der Funktion in RStudio im Suchfeld beim Reiter Help ein.
  • Wenn ich ein R-Paket installiere, fragt mich R manchmal, ob ich auch Pakete installieren, will, die “kompiliert” werden müssen. Soll ich das machen?. Nein, das ist nicht nötig; geben Sie “no” ein.
  • In welchem Paket wohnt meine R-Funktion? Suchen Sie nach der Funktion auf der Webseite RDocumentation22.
  • Ich weiß nicht, wie der R-Befehl funktioniert! Vermutlich haben andere Ihr Problem auch, und meistens hat irgendwer das Problem schon gelöst. Am besten suchen Sie mal auf Stackoverflow23.
  • Ich muss mal grundlegend verstehen, wozu ein bestimmten R-Paket gut ist. Was tun? Lesen Sie die Dokumenation (“Vignette”) eines R-Pakets durch. Für das Paket dplyr bekommen Sie so einen Überblick über die verfügbaren Vignetten diese Pakets: vignette(package = "dplyr"). Dann suchen Sie sich aus der angezeigten Liste eine Vignette raus; mit vignette("rowwise") können Sie sich dann die gewünschte Vignette (z.B. rowwise) anzeigen lassen.
  • Oh nein, ich seh rot, das heißt, R zeigt mir irgendwas in roter Schrift an. Ist jetzt was kaputt? Keine Sorge, R ist in seiner Ausgabe nicht sparsam mit roter Frabe. Solange es nicht als Fehlermeldung (ERROR) erscheint, ist es meist kein Problem.
  • R hat sich aufgehängt oder bringt einen Fehler an einer Stelle, wo sonst alles funktioniert hat. Probieren Sie auf jeden Fall mal das AEG-Prinzip (Aus-Ein-Gut): sprich R neu starten.
  • Ich suche schon seit einer Stunde einen Fehler und find ihn nicht. Ich habe schon verschiedene Gegenstände vor Wut an die Wand geworfen. Was soll ich tun? Machen Sie eine Pause. Doch, das ist ernst gemeint. Meine Erfahrung: Mit etwas Abstand wird der Kopf klarer und man findet das Problem viel einfacher.24
  • Irgendwie reagiert R komisch, vielleicht hat es sich aufgehängt? Starten Sie R neu. Klicken Sie auf Session > Restart R.
  • Ich muss mal klar Schiff machen und alle (oder einige) Variablen löschen. Wie werd ich das Zeug wieder los? Beim Neustart von R werden alle Objekte (Variablen) gelöscht. Einzelne Objekte können Sie selektiv löschen mit dem Befehl rm, so löscht rm(mariokart) das Objekt namens mariokart.

3.8 Mit Daten arbeiten

3.8.1 Wo sind meine Daten?

Damit Sie eine Datendatei importieren können, müssen Sie wissen, wo die Datei ist. Schauen wir uns zwei Möglichkeiten an, wo Ihre Datei liegen könnte.

  1. Irgendwo im Internet25
  2. Irgendwo auf Ihrem Computer, z.B. in Ihrem R-Projektordner

In beiden Fällen wird der “Aufenthaltsort” der Datei durch den Pfad26 und den Namen der Datei definiert.

Hinweis

Wir werden in diesem Kurs häufiger mit dem Daten mariokart arbeiten; Sie finden ihn hier.27

3.8.2 Gebräuchliche Datenformate

Daten werden in verschiedenen Formaten im Computer abgespeichert; Tabellen häufig als

  • Excel-Datei
  • CSV-Datei

In der Datenanalyse ist das gebräuchlichste Format für Daten in Tabellenform die CSV-Datei. Das hat den Grund, weil dieses Format technisch schön einfach ist. Für uns Endverbraucher tut das nichts groß zur Sache, die CSV-Datei beherbergt einfach eine brave Tabelle in einer Textdatei, sonst nichts.

In diesem Buch werden wir mit einem Datensatz namens mariokart arbeiten; hallo Mario (s. Abbildung 3.19)!

Abbildung 3.19: Hallo, Mario

Übungsaufgabe 3.3 (CSV-Datei von innen)  

Öffnen Sie die CSV-Datei mariokart.csv mit einem Texteditor (nicht mit Word und auch nicht mit Excel). Schauen Sie sich gut an, was Sie dort sehen und erklären Sie die Datenstruktur.

Eine CSV-Datei repräsentiert eine Datentabelle. Eine Spaltengrenze wird mittels eines Kommas dargestellt (man kann auch andere Zeichen wählen, um Spalten voneinander abzugrenzen).

Hier sind die ersten paar Zeilen:

V1,id,duration,n_bids,cond,start_pr,ship_pr,total_pr,ship_sp,seller_rate,stock_photo,wheels,title
1,150377422259,3,20,new,0.99,4,51.55,standard,1580,yes,1,~~ Wii MARIO KART &amp; WHEEL ~ NINTENDO Wii ~ BRAND NEW ~~
2,260483376854,7,13,used,0.99,3.99,37.04,firstClass,365,yes,1,Mariokart Wii Nintendo with wheel - Mario Kart Nintendo
3,320432342985,3,16,new,0.99,3.5,45.5,firstClass,998,no,1,Mario Kart Wii (Wii)
4,280405224677,3,18,new,0.99,0,44,standard,7,yes,1,Brand New Mario Kart Wii Comes with Wheel. Free Ship
5,170392227765,1,20,new,0.01,0,71,media,820,yes,2,BRAND NEW NINTENDO 1 WII MARIO KART WITH 2 WHEELS +GAME

3.8.3 Daten importieren

3.8.3.1 Importieren von einem R-Paket

Ihr Datensatz schon in einem R-Paket gespeichert, können Sie ihn aus diesem R-Paket starten. Das ist die bequemste Option. Zum Beispiel “wohnt” der Datensatz mariokart im R-Paket openintro.

Tipp

Ein häufiger Fehler ist, dass man vergisst, dass man zuerst ein R-Paket installieren muss, bevor man es nutzen kann. Auf der anderen Seite muss man ein R-Paket (wie andere Software auch) nur ein Mal installieren - das Paket muss man ein Paket nach jedem Neustart von RStudio mit library() starten.

data("mariokart", package = "openintro")

3.8.3.2 Importieren von einer Webseite

Hier ist eine Möglichkeit, Daten (in Form einer Tabelle) von einer Webseite (URL) in R zu importieren:

mariokart <- read.csv("https://vincentarelbundock.github.io/Rdatasets/csv/openintro/mariokart.csv")

Es ist egal, welchen Namen Sie der Tabelle geben. Ich nehme oft d, d die Daten. Außerdem ist d kurz, muss man nicht so viel tippen.

Werfen wir einen Blick in die Tabelle (engl. to glimpse):

glimpse(d)
## Rows: 143
## Columns: 12
## $ id          <dbl> 150377422259, 260483376854, 320432342985, 280405224677, 17…
## $ duration    <int> 3, 7, 3, 3, 1, 3, 1, 1, 3, 7, 1, 1, 1, 1, 7, 7, 3, 3, 1, 7…
## $ n_bids      <int> 20, 13, 16, 18, 20, 19, 13, 15, 29, 8, 15, 15, 13, 16, 6, …
## $ cond        <fct> new, used, new, new, new, new, used, new, used, used, new,…
## $ start_pr    <dbl> 0.99, 0.99, 0.99, 0.99, 0.01, 0.99, 0.01, 1.00, 0.99, 19.9…
## $ ship_pr     <dbl> 4.00, 3.99, 3.50, 0.00, 0.00, 4.00, 0.00, 2.99, 4.00, 4.00…
## $ total_pr    <dbl> 51.55, 37.04, 45.50, 44.00, 71.00, 45.00, 37.02, 53.99, 47…
## $ ship_sp     <fct> standard, firstClass, firstClass, standard, media, standar…
## $ seller_rate <int> 1580, 365, 998, 7, 820, 270144, 7284, 4858, 27, 201, 4858,…
## $ stock_photo <fct> yes, yes, no, yes, yes, yes, yes, yes, yes, no, yes, yes, …
## $ wheels      <int> 1, 1, 1, 1, 2, 0, 0, 2, 1, 1, 2, 2, 2, 2, 1, 0, 1, 1, 2, 2…
## $ title       <fct> "~~ Wii MARIO KART &amp; WHEEL ~ NINTENDO Wii ~ BRAND NEW …

Hier findet sich eine Erklärung des Datensatzes.

Download einer Datendatei (CSV-Format) von einer Webseite

3.8.3.3 Importieren von Ihrem Computer in RStudio Desktop

Gehen wir davon aus, dass sich die Datendatei im gleichen Ordner wie die R-Datei28 befindet, in der Sie den Befehl zum Importieren schreiben. Dann können Sie die Datei einfach so importieren:

d <- read.csv("mariokart.csv")

Dieses Video erklärt die Schritte des Importierens einer Datendatei von Ihrem Computer.29

3.8.3.4 Importieren von Ihrem Computer in RStudio Cloud

Das Importieren in von Ihrem Computer zu RStudio Cloud ist identisch zum Importieren von Ihrem Computer in RStudio Desktop. Nur dass Sie die Datendatei vorab hochladen müssen, schließlich ist RStudio Cloud in der Cloud und nicht auf Ihrem Computer. Klicken Sie dazu auf das Icon Upload im Reiter Files, s. Abbildung 3.20.

Abbildung 3.20

Wählen Sie am besten den Ordner als Ziel, in dem sich auch die R-Datei, von der aus Sie den Befehl zum Daten importieren schreiben, befindet.

Hinweis

Es gibt verschiedene Formate, in denen (Tabellen-)Dateien in einem Computer abgespeichert werden. Die gebräuchlichsten sind CSV und Excel. Es gibt auch mehrere R-Befehle, um Daten in R zu importieren, z.B. read.csv() oder data_read(). Praktischerweise kann der R-Befehl data_read() viele verschiedene Formate automatisch einlesen, so dass wir uns nicht weiter um das Format kümmern brauchen. Der Vorteil von read.csv ist, dass Sie kein Extra-Paket installiert bzw. gestartet haben müssen.

3.8.3.5 Daten importieren per Klick

RStudio Desktops GUI (Benutzeroberfläche) erlaubt es Ihnen auch, Daten per Klick, also ohne R-Befehle, zu importieren, s. Abbildung 3.21.

Sie können über diese Maske sowohl CSV-Dateien, Excel-Dateien oder Daten-Dateien aus anderen Statistik-Programmen (z.B. SPSS) importieren auf diese Weise.

Zur Erinnerung: CSV-Dateien sind Textdateien, wählen Sie in dem Fall also From Text. Ich empfehle die Variante From Text (readr) ....

Abbildung 3.21: Daten importieren per Klick

In der folgenden Maske können Sie unter Browse die zu importierende Datendatei auswählen. Mit Klick auf Import wird die Datei schließlich in R importiert.

3.8.4 Dataframes

Eine in R importierte Tabelle (mit bestimmten Eigenschaften) heißt Dataframe. Dataframes sind in der Datenanalyse von großer Bedeutung.

Definition 3.6 (Dataframe) Ein Dataframe (data frame; auch “Tibble” genannt30) ist ein Datenobjekt in R zur Darstellung von Tabellen. Dataframes bestehen aus einer oder mehreren Spalten. Spalten haben einen Namen, sozusagen einen “Spaltenkopf”. Alle Spalten müssen die gleiche Länge haben; anschaulich gesprochen ist eine Tabelle (in R) rechteckig. Jede Spalte einzeln betrachtet kann als Vektor aufgefasst werden. \(\square\)

Tabelle 2.2 ist die Tabelle mit den Mariokart-Daten; etwas präziser gesprochen ein Dataframe mit Namen mariokart. Übrigens ist Tabelle 2.2 in Normalform (Tidy-Format), vgl. Definition 2.9.

Hinweis

Geben Sie den Namen eines Dataframes ein, um sich den Inhalt anzeigen zu lassen. Beachten Sie, dass Sie die Daten auf diese Weise nur anschauen, nicht ändern können. \(\square\)

3.8.5 Tabellen in R betrachten

Wenn Sie in R z.B. die Tabelle mariokart in einer Excel-typischen Ansicht betrachten wollen, klicken Sie am besten auf das Tabellen-Icon im Reiter Environment, gleich neben dem Namen mariokart, s. Abbildung 3.22.

Abbildung 3.22: Per Klick auf das Tabellen-Icon können Sie eine Tabellenansicht der Tabelle mariokart öffnen

Alternativ öffnet der Befehl View(mariokart) die gleiche Ansicht.

3.9 Logikprüfung

🧑‍🎓 Wer will schon wieder wen prüfen?!

In diesem Abschnitt schauen wir uns Logikprüfungen an: Wir lassen R prüfen, ob eine Variable einen bestimmten Wert hat oder größer/kleiner als ein Referenzwert ist.

Definieren wir zuerst eine Variable, x.

x <- 42

Dann fragen wir R, ob diese Variable den Wert 42 hat.

x == 42
## [1] TRUE

🤖 Hallo, Mensch. Ja, diese Variable hat den Wert 42.

(Danke, R.)

Möchte man mit R prüfen, ob eine Variable x einen bestimmten Wert (“Inhalt”) hat, so schreibt man:

x == Wert.

Wichtig

Man beachte das doppelte Gleichheitszeichen. Zur Prüfung auf Gleichheit muss man das doppelte Gleichheitszeichen verwenden.

Vorsicht

Ein beliebter Fehler ist es, bei der Prüfung auf Gleichheit, nur ein Gleichheitszeichen zu verwenden, z.B. so: x = 73. Mit einem Gleichheitszeichen prüft man aber nicht auf Gleichheit, sondern man definiert die Variable oder bestimmt ein Funktionsargument, s. Kapitel 3.7.1. \(\square\)

Tabelle 3.1 gibt einen Überblick über wichtige Logikprüfungen in R.31

Tabelle 3.1: Logische Prüfungen in R
Prüfung.auf R-Syntax
Gleichheit x == Wert
Ungleichheit x != Wert
Größer als Wert x > Wert
Größer oder gleich Wert x >= Wert
Kleiner als Wert x < Wert
Kleiner oder gleich Wert x <= Wert
Logisches UND (x < Wert1) & (x > Wert2)
Logisches ODER (x < Wert1) | (x > Wert2)

3.10 Praxisbezug

🧑‍🎓Wird R in der Praxis wirklich genutzt? Oder ist R nur der Traum von (vielleicht verwirrten) Profs im Elfenbeinturm?

Schauen wir uns dazu die Suchanfragen bei stackoverflow.com an, dem größten FAQ-Forum für Software-Entwicklung. Wir vergleichen Suchanfragen mit dem Tag [r] zu Suchanfragen mit dem Tag [spss]32. Die Ergebnisse sind in Abbildung Abbildung 3.23 dargestellt.

Abbildung 3.23: Suchanfragen nach R bzw SPSS, Stand 2022-02-24

Das ist grob gerechnet ein Faktor von 200 (der Unterschied von R zu SPSS). Dieses Ergebnis lässt darauf schließen, dass R in der Praxis viel mehr als Excel gebraucht wird.

🧑‍🎓 Aber ist R wirklich ein Werkzeug, das mir im Job hilft?

Viele Firmen weltweit nutzen R zur Datenanalyse.33.

👨‍🏫 R ist der Place-to-be für die Datenanalyse.

🧑‍🎓 Aber ist Datenanalyse wirklich etwas, womit ich in Zukunft einen guten Job bekomme?

Berufe mit Bezug zu Daten, Datenanalyse oder, allgemeiner, Künstlicher Intelligenz (artificial intelligence) gehören zu den am meisten wachsenden Berufen:

Artificial intelligence (AI) continues to make a strong showing on our Emerging Jobs lists, which is no surprise. Many jobs that have risen up as a result of AI in fields like cybersecurity and data science and because it’s is so pervasive many roles may demand more knowledge of AI than you may think. For example, real estate and business development roles. (Quelle: LinkedIn34)

3.11 Aufgaben

Übungsaufgabe 3.4 (Statistik-Meme) Suchen Sie ein schönes Meme zum Thema Statistik, Datenanalyse und Data Science. Hier ist ein Startpunkt. \(\square\)

Die Webseite datenwerk.netlify.app stellt eine Reihe von einschlägigen Übungsaufgaben bereit. Sie können die Suchfunktion der Webseite nutzen, um die Aufgaben mit den folgenden Namen zu suchen:

  1. Typ-Fehler-R-01
  2. Typ-Fehler-R-02
  3. Typ-Fehler-R-03
  4. Typ-Fehler-R-04
  5. Typ-Fehler-R-06a
  6. Typ-Fehler-R-07
  7. Typ-Fehler-R-08-name-clash
  8. Logikpruefung1
  9. Logikpruefung2
  10. there-is-no-package
  11. Wertberechnen2
  12. Wertzuweisen_mc
  13. argumente
  14. import-mtcars
  15. Wertzuweisen
  16. Wertpruefen
  17. wrangle1
  18. repro1-sessioninfo
  19. mw-berechnen

Prüfen Sie Ihr Wissen mit diesem Quiz!35

Noch nicht genug? Checken Sie alle Aufgaben mit dem Tag [https://datenwerk.netlify.app/#category=R] auf dem Datenwerk aus.36

Hinweis

Die Webseite Datenwerk stellt eine Reihe von Aufgaben zum Thema Statistik bereit. Zu jeder Aufgabe sind ein oder mehrere Schlagwörter (Tags) zugeordnet. Wenn Sie auf ein Schlagwort klicken, sehen Sie die Liste der Aufgaben mit diesem Schlagwort. Es kann aber sein, dass Sie einige Aufgabe nicht lösen können, da Wissen vorausgesetzt wird, das Sie (noch) nicht haben. Lassen Sie sich davon nicht ins Boxhorn jagen. Ignorieren Sie solche Aufgaben fürs Erste. \(\square\)

3.12 Vertiefung

3.12.1 Varianten zu read.csv

Hier ist eine weitere Möglichkeit, um Daten von einem Ordner (egal ob dieser sich im Internet oder auf Ihrem Computer befinde) einzulesen, stellt die Funktion data_read bereit:

library(easystats)  # Das Paket muss installiert sein
d <- data_read("https://vincentarelbundock.github.io/Rdatasets/csv/openintro/mariokart.csv")

Der Unterschied ist, dass data_read viele Formate von Daten (Excel, CSV, SPSS, …) verkraftet, wohingegen read.csv nur Standard-CSV einlesen kann.

Schauen wir uns die letzte R-Syntax en Detail an:

Hey R,
hol das "Buch" easystats aus der Bücherei und lies es
definiere als "d" die Tabelle,
die du unter der angegebenen URL findest.

In R gibt es oft viele Möglichkeiten, ein Ziel zu erreichen. Zum Beispiel haben wir hier den Befehl data_read() verwendet, um Daten zu importieren. Andere, gebräuchliche Befehle, die CSV-Dateien importieren, heißen read.csv() (aus dem Standard-R, kein Extra-Paket nötig) und read_csv() (aus dem Meta-Paket {tidyverse}).

3.12.2 Importieren von Excel-Tabellen

Mit der Funktion data_read aus {easystats} kann man viele verschiedene Datenformate importieren, auch Excel-Tabellen (.xls, .xlsx).

Als Beispiel betrachten wir den Datensatz extra aus dem R-Paket {pradadata}37. In diesem Datensatz werden die Ergebnisse einer Umfrage zu den Korrelaten von Extraversion beschrieben. Details zu der zugrundeliegenden Studie finden Sie hier: https://osf.io/4kgzh.

Ein Daten-Dictionary findet sich hier.38

Laden Sie die Excel-Datei herunter. Angenommen, Sie speichern die Excel-Datei in einem Unterordner namens daten Ihres aktuellen Projektordners. Dann können Sie die Daten so importieren:

library(easystats)
extra <- data_read("daten/extra.xls")

Allerdings kann data_read keine Dateien aus dem Internet importieren, was praktisch wäre. Stattdessen muss die Datei lokal auf Ihrer Festplatte liegen.

Wenn Sie allerdings “remote”, also aus dem Internet, eine Excel-Datei importieren möchten, so können Sie das mit import aus dem R-Paket {rio} tun:

library(rio)
extra_path <- "https://github.com/sebastiansauer/statistik1/raw/main/daten/extra.xls"
extra <- import(extra_path)
Hinweis

CSV-Dateien werden auf vielen Computern als eine Datei erkannt, die Excel öffnen kann und das auch tut, wenn man eine CSV-Datei doppelklickt. Dennoch ist das CSV-Format keine Datei im Excel-Format, sondern eine einfache Text-Datei, die auch mit jedem Text-Editor geöffnet und bearbeitet werden kann. \(\square\)

Alternativ können Sie in RStudio auch Excel-Dateien ohne R-Code importieren, s. Abbildung 3.21.

3.12.3 Der Dollar-Operator

In Beispiel 3.2 hatten wir Vektoren definiert. Solche Vektoren fliegen sozusagen frei in Ihrem Environment herum (Schauen Sie mal dort nach!) Die Spalten einer Tabelle sind aber auch Vektoren, nur eben nicht frei im Environment, sondern in eine Tabelle eingebunden.

Möchte man diese Vektoren direkt ansprechen, so kann man das mit dem sog. Dollar-Operator $ tun.

Angenommen, Sie möchten sich die Verkaufspreise (total_pr) aus der Tabelle mariokart herausziehen, dann können Sie das mit dem Dollar-Operator tun:

mariokart$total_pr
##   [1]  51.55  37.04  45.50  44.00  71.00  45.00  37.02  53.99  47.00  50.00
##  [11]  54.99  56.01  48.00  56.00  43.33  46.00  46.71  46.00  55.99 326.51
##  [21]  31.00  53.98  64.95  50.50  46.50  55.00  34.50  36.00  40.00  47.00
##  [31]  43.00  31.00  41.99  49.49  41.00  44.78  47.00  44.00  63.99  53.76
##  [41]  46.03  42.25  46.00  51.99  55.99  41.99  53.99  39.00  38.06  46.00
##  [51]  59.88  28.98  36.00  51.99  43.95  32.00  40.06  48.00  36.00  31.00
##  [61]  53.99  30.00  58.00  38.10 118.50  61.76  53.99  40.00  64.50  49.01
##  [71]  47.00  40.10  41.50  56.00  64.95  49.00  48.00  38.00  45.00  41.95
##  [81]  43.36  54.99  45.21  65.02  45.75  64.00  36.00  54.70  49.91  47.00
##  [91]  43.00  35.99  54.49  46.00  31.06  55.60  40.10  52.59  44.00  38.26
## [101]  51.00  48.99  66.44  63.50  42.00  47.00  55.00  33.01  53.76  46.00
## [111]  43.00  42.55  52.50  57.50  75.00  48.92  45.99  40.05  45.00  50.00
## [121]  49.75  47.00  56.00  41.00  46.00  34.99  49.00  61.00  62.89  46.00
## [131]  64.95  36.99  44.00  41.35  37.00  58.98  39.00  40.70  39.51  52.00
## [141]  47.70  38.76  54.51

Der Dollar-Operator trennt den Namen der Tabelle vom Namen der Spalte.

Natürlich können Sie mit dem resultierenden Vektor beliebig weiterarbeiten, etwa ihn in einem anderen Vektor speichern oder eine Funktion anwenden:

verkaufspreise <- mariokart$total_pr
mean(verkaufspreise)
## [1] 49.88049
mean(mariokart$total_pr)  # synonym zur obigen Zeile
## [1] 49.88049

3.12.4 R-Zertifikat bei LinkedIn

Sie können bei LinkedIn39 (oder anderen Anbietern ein Zertifikat) erhalten, das Ihre R-Kenntnisse dokumentiert.

3.12.5 R-Funktionen verschachteln

Das Kombinieren von Funktionen kann kompliziert werden:

x <- c(1, 2, 3)
sum(abs(mean(x)-x)) 
## [1] 2

Die Funktion abs(x) gibt den (Absolut-)Betrag von x zurück (entfernt das Vorzeichen, mit anderen Worten).

Hier haben wir die mittlere Absolutabweichung der Elemente von x zum Mittelwert ausgerechnet.

3.12.6 R und Friends updaten

Irgendwann werden Ihr R, Ihr RStudio und Ihre R-Pakete veraltet sein, s. Abbildung 3.24. Installieren Sie dann einfach die neue Version von R und RStudio wie oben beschreiben, s. Kapitel 3.3.

So updaten Sie Ihre R-Pakete: Klicken Sie im Reiter Packages (in RStudio) und dort auf den Button Update.40 Denken Sie daran, dass Sie die Software (R, RStudio, R-Paket), die Sie updaten/installieren, nicht laufen darf.

Hinweis

Ihre R-Pakete sollten aktuell sein. Klicken Sie beim Reiter Packages auf “Update”, um Ihre R-Pakete zu aktualisieren. Arnold Schwarzenegger rät, Ihre R-Pakete aktuell zu halten, s. Abbildung 3.2441.

Abbildung 3.24: R-Pakete sollten stets aktuell sein, so Arnold Schwarzenegger

3.12.7 Benötigte R-Pakete

In diesem Kapitel benötigen Sie folgendes R-Paket:

library(openintro)  # Datensatz `mariokart`

3.12.8 Benötigte Daten

Sie benötigen in diesem Kapitel den Datensatz mariokart, der entweder online42 oder über R-Paket openintro importiert werden kann:

3.12.8.1 Import via Download

mariokart <- read.csv("https://vincentarelbundock.github.io/Rdatasets/csv/openintro/mariokart.csv")

3.12.8.2 Import via R-Paket

data(mariokart, package = "openintro")  # Das Paket muss installiert sein

3.13 Literaturhinweise

“Warum R? Warum, R?” heißt ein Kapitel in Sauer (2019), das einiges zum Pro und Contra von R ausführt. In Kapitel 3 in der gleichen Quelle finden sich viele Hinweise, wie man R startet; In Kapitel 4 werden Grundlagen von “Errisch” erläutert; Kapitel 5 führt in Datenstrukturen von R ein (schon etwas anspruchsvoller). Alternativ bietet Kapitel 1 von Ismay & Kim (2020) einen guten und sehr anwenderfreundlichen Überblick. Das Buch hat auch den Vorteil, dass es komplett frei online verfügbar ist. Vergleichbar dazu ist Çetinkaya-Rundel & Hardin (2021), vielleicht einen Tick formaler; auf jeden Fall genau das richtige Niveau für Bachelor-Statistik in angewandten nicht-technischen Studiengängen.

Natürlich gibt es viele Online-Kurse zu R, die aber teilweise kostenplichtig sind43.

3.14 Literatur


  1. https://www.youtube.com/@sebastiansauerstatistics↩︎

  2. https://www.youtube.com/playlist?list=PLRR4REmBgpIEaIyeNBgNGPgmhQJ_T1y8_↩︎

  3. Streng genommen ist RStudio für die Datenanalyse irrelevant, aber RStudio ist praktisch, Sie werden es nicht missen wollen.↩︎

  4. Mehr Infos finden sich hier: https://de.wikipedia.org/wiki/R_%28Programmiersprache%29↩︎

  5. Wenn Sie gefragt werden, dass Sie einen “Mirror” auswählen sollen, heißt das, Sie sollen einen Computer (Server) wählen, von dem Sie R herunterladen. Der sollte möglichst nicht zu weit weg stehen, dann spart es vielleicht etwas Zeit und Bandbreite.↩︎

  6. Sie benötigen Admin-Rechte auf Ihrem Computer.↩︎

  7. in Form einer intergrierten Entwicklungsumgebung (integrated development environment, IDE: https://en.wikipedia.org/wiki/Integrated_development_environment))↩︎

  8. https://posit.co/download/rstudio-desktop/↩︎

  9. Sie benötigen u.U. Admin-Rechte auf Ihrem Computer.↩︎

  10. https://rstudio.cloud/; neuerdings auch “Posit Cloud” genannt↩︎

  11. Übrigens sind tidyverse und easystats Pakete, die nur dafür da sind, mehrere Pakete zu installieren. So gehören z.B. zu tidyverse die Pakete ggplot (Daten verbildlichen) und dplyr (Datenjudo). Damit wir nicht alle Pakete einzeln installieren und starten müssen, bietet uns das Paket tidyverse den Komfort, alle die Pakete dieser “Sammlung” auf einmal zu starten. Praktisch.↩︎

  12. Dieses Video https://www.youtube.com/watch?v=Yej9xzKQ3yI&list=PLRR4REmBgpIEaIyeNBgNGPgmhQJ_T1y8_&index=26 verdeutlicht den Unterschied zwischen Installation und Starten eines R-Pakets.↩︎

  13. <ttps://quarto.org/docs/get-started/>↩︎

  14. Dieses Video https://youtu.be/_f3latmOhew gibt Ihnen Einstiegshilfe in Quarto.↩︎

  15. Dieses Video https://www.youtube.com/watch?v=TKQk-tEF9YQ&list=PLRR4REmBgpIEaIyeNBgNGPgmhQJ_T1y8_&index=28 und dieses Video https://www.youtube.com/watch?v=Nal0m_AmMwg&list=PLRR4REmBgpIEaIyeNBgNGPgmhQJ_T1y8_&index=48 geben eine Einführung in das Definieren von Variablen in R↩︎

  16. Datenschutz!↩︎

  17. Streng genommen sollte man nicht von einer Liste sprechen, da es in R noch einen anderen Objekttyp gibt, der list heißt, und eine verallgemeinerte Form eines Vektors ist.↩︎

  18. und viele andere arithmetische Funktionen in R↩︎

  19. > 🤖 Naja, manchmal.↩︎

  20. na.rm steht für remove die NA, also fehlenden Werte↩︎

  21. https://datenwerk.netlify.app/posts/r-quiz/r-quiz↩︎

  22. https://www.rdocumentation.org/↩︎

  23. https://www.stackoverflow.com↩︎

  24. Und manchmal ist einem das Problem danach schlichtweg egal.↩︎

  25. z.B. hier: https://vincentarelbundock.github.io/Rdatasets/csv/openintro/mariokart.csv↩︎

  26. Der Pfad einer Datei sagt, in welchem Ordner und Unterorder und Unter-Unterordner die gesuchte Datei liegt. Ein Pfad könnte z.B. so aussehen: “/Users/sebastiansaueruser/github-repos/statistik1/020-R.qmd”.↩︎

  27. Auf dieser Webseite https://vincentarelbundock.github.io/Rdatasets/articles/data.html finden Sie eine große Zahl an Datensätzen. Nur für den Fall, dass Ihnen langweilig ist.↩︎

  28. .R- oder .qmd-Datei↩︎

  29. https://youtu.be/B_nuN-M0pQM↩︎

  30. von “tbl” wie Table↩︎

  31. Um das Zeichen für das logische ODER, | auf einer Mac-Tastatur zu erhalten, drückt man Option+7.↩︎

  32. Durchgeführt am 2022-02-24, 17:21 CET↩︎

  33. wie diese Liste zeigt: https://www.quora.com/Which-organizations-use-R?share=1 zeigt↩︎

  34. https://blog.linkedin.com/2019/december/10/the-jobs-of-tomorrow-linkedins-2020-emerging-jobs-report↩︎

  35. https://datenwerk.netlify.app/posts/r-quiz/r-quiz↩︎

  36. https://datenwerk.netlify.app/#category=R↩︎

  37. https://github.com/sebastiansauer/pradadata↩︎

  38. https://github.com/sebastiansauer/statistik1/raw/main/daten/extra-dictionary.md↩︎

  39. https://www.linkedin.com/help/linkedin/answer/a510481↩︎

  40. Wenn die Anzahl der zu aktualisierenden Pakete groß ist, dann besser nicht alle auswählen, sondern nur ein paar. Dann die nächsten paar Pakete usw.↩︎

  41. Bildquelle: https://imgflip.com/memegenerator↩︎

  42. über diese Internetadresse: https://vincentarelbundock.github.io/Rdatasets/csv/openintro/mariokart.csv↩︎

  43. Ein Beispiel ist der Kurs Getting Started with Rstudio, https://www.coursera.org/projects/getting-started-rstudio (Kursdauer: 1 Stunde)↩︎