Kapitel 6 Packages
Alle Probleme und Anwendungen lassen sich, jedenfalls theoretisch, mit den Basis-Funktionen von R realisieren. Je weiter in der Datenanalyse fortgeschritten wird, desto komplexer werden jedoch die Probleme. Wiederkehrende Probleme lassen sich oft lösen, indem selber Funktionen geschrieben werden. Bei vielen Programmiersprachen sind hierbei vor allem zwei Optionen der Fall:
- (Fast) Alle Probleme waren schon mal da.
- (Fast) Alle Probleme treten wiederholt auf.
Damit sind andere User:innen (wahrscheinlich) bereits auf das gleiche Problem gestoßen und haben entsprechende Funktionen geschrieben, um das Problem zu lösen. Sie können ihre Funktionen in sogenannten Packages der Allgemeinheit zur Verfügung stellen.
So kann mithilfe dieser Packages der Funktionsumfang von R praktisch beliebig erweitert werden.
6.1 Packages installieren und laden
Bevor auf die Funktionen des Packages zurückgegriffen werden kann, muss dieses auf dem Computer installiert werden. Analog könnte man darunter auch das Lernen von neuen Vokabeln verstehen.
Die Installation erfolgt über die Funktion install.packages()
. Das einzige
Argument ist der Name des zu ladenden Packages als Character.
Ist das Package installiert, muss es zunächst noch geladen werden, bevor es benutzt werden kann. Hierfür gibt es zwei Funktionen:
library(tidyverse)
require(tidyverse)
In der Praxis macht es meist keinen Unterschied, welche Funktion genutzt wird. Das einzige Argument ist bei beiden Funktionen der Name des Packages als Name (ohne Anführungszeichen).
require()
wurde für die Anwendung in Funktionen entwickelt. Wird ein Package
hiermit geladen, wird ein FALSE
zurückgegeben, wenn das Package nicht
installiert ist.
library()
gibt eine Fehlermeldung zurück, wenn das Package nicht installiert
ist. Im Alltagsgebrauch wird diese Funktion empfohlen.
Video zum Installieren und Laden von Packages:
6.2 needs()
Gerade im Arbeitsfluss ist die oben beschriebene Vorgehensweise lästig. Auf
dieses Problem sind bereits vorher User:innen gestoßen und haben entsprechend
ein Package geschrieben, was den Arbeitsfluss erleichtern soll. Dieses Package
heißt (sehr passend) Needs
und lädt nur eine Funktionen: needs()
.
Mit needs()
können, mit Komma getrennt, ein oder mehr Packages als Namen (ohne
Anführungszeichen) übergeben werden. Beim Ausführen wird zunächst überprüft,
ob das Package installiert ist. Ist es installiert, wird es geladen. Ist es nicht
installiert, wird es installiert und anschließend geladen.
Im Arbeitsfluss kann dann ein Package, was benötigt wird, einfach in die Funktion geschrieben und ausgeführt werden.
Hinweis!
Beim ersten Laden fragt needs
, ob es sich selber laden soll, wenn es gebraucht
wird. Wählt man yes aus, wird die Zeile library(needs)
nicht benötigt.
Diese Funktionsweise ist ein wenig “buggy”; heißt: manchmal funktioniert das
nicht. Wir empfehlen, einfach das Package zu Beginn zu laden und sich nicht
hierauf zu verlassen.
Video zu needs: