3.1 Was ist ein Package in R?
Ein Package enthält Funktionen, die Ihre Arbeit erleichtern und effizienter machen. Packages sind also Ergänzungen zu R und erweitern dessen Funktionsumfang. Auch wenn die Standardinstallation von R viele leistungsfähige Werkzeuge mitbringt, reichen diese nicht aus, um effizient und komfortabel zu arbeiten. Sie müssen Packages installieren, und diese machen die Arbeit sowohl angenehmer als auch leichter. Derzeit gibt es etwa 18810 Packages. Sie können jedes beliebige Package innerhalb weniger Sekunden installieren. Die Packages werden von Experten validiert. Alle Packages sind Open Source, sodass Sie den Quellcode jederzeit einsehen können (was Einsteiger selten tun).
3.1.1 Beispiele für beliebte Packages für R
ggplot2zur Visualisierung von Daten.dplyrzur Aufbereitung von Daten.tidyrzur Aufbereitung von Daten.survivalfür die Überlebenszeitanalyse.tidymodelszum Erstellen, Vergleichen und Evaluieren von Prädiktionsmodellen.forcatszum Umgang mit kategorialen Variablen.stringrzum Umgang mit Zeichenketten.purrrfür einen effizienteren Einsatz von Funktionen.
3.1.2 Wie man Packages in R installiert
Packages installieren und aktivieren
Ein Package wird nur einmal installiert. Nach der Installation steht das Package in R zur Verfügung. Um das Package zu verwenden, müssen Sie es bei jedem Start von R aktivieren.
Bevor Sie ein Package verwenden, müssen Sie es installieren und aktivieren. Ein Package wird nur einmal installiert, muss aber bei jedem Start von R aktiviert werden. Die Standardinstallation von R enthält bereits mehrere vorinstallierte Packages. Diese Packages enthalten die grundlegendsten Funktionen, zum Beispiel elementare mathematische Operationen.
Um ein Package zu installieren, verwenden Sie die Funktion [install.packages()](https://rdrr.io/r/utils/install.packages.html). Im Folgenden wird das Package dplyr installiert. Beachten Sie, dass der Name des Packages in Anführungszeichen geschrieben wird:
install.packages("dplyr")3.1.3 Wie man ein R-Package aktualisiert.
Auch wenn Sie das Package nur einmal installieren, kann es nötig sein, es zu aktualisieren. Aktualisierungen erfolgen seltener, und für die meisten Packages genügen ein oder zwei Aktualisierungen pro Jahr. Aktualisieren Sie das Package mit folgendem Befehl:
update.packages("dplyr")Sie können ein Package auch aktualisieren, indem Sie es erneut installieren (R überschreibt dann die alte Version des Packages).
3.1.4 Code breaking updates
Die allermeisten Aktualisierungen von Packages werden so vorgenommen, dass alter (bestehender) Code weiterhin normal funktioniert. Das bedeutet, dass Ihr Code mit größter Wahrscheinlichkeit auch nach der Aktualisierung eines Packages funktioniert. Aktualisierungen können daher ohne große Bedenken durchgeführt werden. Gelegentlich werden jedoch größere Änderungen an Packages vorgenommen, die dazu führen können, dass Ihr Code nach einer Aktualisierung nicht mehr funktioniert. Im Englischen nennt man dies code breaking updates. Sie sollten dies vermuten, wenn Ihr Code nach einer Aktualisierung Fehlermeldungen (Errors) zurückgibt. Diese Probleme lassen sich fast immer leicht beheben, indem man die aktualisierte Dokumentation des Packages durchsieht. In der Regel sind nur sehr kleine Anpassungen am Code nötig, damit er wieder funktioniert.
3.1.5 Packages ohne Befehl installieren
Sie können Packages in R auch installieren, ohne einen Befehl zu schreiben. Das wird nicht empfohlen, da alle Vorgänge und Befehle in chronologischer Reihenfolge im Code dokumentiert sein sollten. Der Vollständigkeit halber folgt dennoch eine Anleitung, wie man Packages ohne Code installiert. Im folgenden Beispiel, siehe Abbildung 3.1, installieren wir das Package rms:
- Klicken Sie im unteren rechten Fenster auf den Reiter Packages.
- Klicken Sie oben links auf Install.
- Geben Sie den Namen des Packages (rms) in das Suchfeld ein.
- Klicken Sie auf Install.

Um mit diesem Kurs fortzufahren, müssen wir mehrere Packages installieren. Sie können mehrere Packages installieren, indem Sie die Funktion [install.packages()](https://rdrr.io/r/utils/install.packages.html) in mehreren Zeilen wiederholen, wie folgt:
install.packages("dplyr")
install.packages("ggplot2")
install.packages("rms")
install.packages("tidymodels")Der obige Code verstößt allerdings gegen das Prinzip DRY, das für Don’t Repeat Yourself steht. Beim Programmieren sollten Sie Wiederholungen auf ein Minimum reduzieren. Guter Code ist knapp und enthält keine Wiederholungen. Deshalb erstellen wir nun einen Vektor mit den Namen der Packages und geben in der Funktion [install.packages()](https://rdrr.io/r/utils/install.packages.html) nur den Namen des Vektors an.
Beachten Sie, dass im folgenden Code einige Zeilen mit # beginnen, was bedeutet, dass es sich um Kommentare handelt. Ein Kommentar ist einfach eine Notiz, die den Code erklärt, damit Sie und Ihre Kolleginnen und Kollegen ihn verstehen können. Der Kommentar wird von R nicht ausgewertet.
## Mit der Funktion c() wird ein Vektor mit den zu installierenden Packages erstellt
new_packages <- c("dplyr", "ggplot2", "rms", "tidymodels")
## installiert die Packages
install.packages(new_packages)Wir hätten dies noch weiter verkürzen können, indem wir den Schritt überspringen, in dem der Vektor erstellt wird, wie folgt:
install.packages(c("dplyr", "ggplot2", "rms", "tidymodels"))Die letzte Variante ist knapp und enthält keine Wiederholungen. Beachten Sie auch, dass wir im letzten Beispiel eine Funktion ([install.packages()](https://rdrr.io/r/utils/install.packages.html)) eine andere Funktion ([c()](https://rdrr.io/r/base/c.html)) umschließen lassen. Das ist der Reiz von R, nämlich die Möglichkeit, Funktionen in andere Funktionen einzubetten. Im weiteren Verlauf werden Sie feststellen, dass dies leistungsfähige Operationen ermöglicht.
3.1.6 Packages in R laden
Bei jedem Start von R wird eine neue Session erstellt. Das bedeutet Folgendes:
- Ihr Environment ist leer.
- Nur einzelne Packages, die zur Standardinstallation gehören, sind aktiviert.
Deshalb beginnt jedes Skript üblicherweise mit einigen Zeilen, die die zu verwendenden Packages aktivieren. Das kann zum Beispiel so aussehen wie in Abbildung 3.2. Beachten Sie, dass Packages mit der Funktion [library()](https://rdrr.io/r/base/library.html) geladen werden.

Beachten Sie, dass beim Laden von Packages keine Anführungszeichen nötig sind!
3.1.7 Error beim Aktivieren von Packages
R gibt einen Fehler zurück, wenn Sie versuchen, ein Package zu laden, das nicht installiert ist. Wir versuchen nun, ein Package namens polish zu laden, das nicht installiert ist:
library(polish)Error in library(polish): there is no package called 'polish'3.1.7.1 Erfolgreiche Aktivierung von Packages
R gibt eine Meldung zurück, wenn ein Package geladen wurde. Diese Meldung kann wichtige Informationen enthalten. Beim Laden des Packages dplyr erscheint folgende Information:
library(dplyr)Attaching package: ‘dplyr’
The following objects are masked from ‘package:stats’:
filter, lag
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, unionDie obige Meldung enthält wichtige Informationen. Sie werden ähnliche Meldungen häufig sehen und sollten aufmerksam darauf achten. Die Meldung besagt Folgendes:
- Die Funktionen
[filter()](https://dplyr.tidyverse.org/reference/filter.html)undlag()aus dem Packagestatswerden maskiert. - Die Funktionen
[intersect()](https://generics.r-lib.org/reference/setops.html),[setdiff()](https://generics.r-lib.org/reference/setops.html),[setequal()](https://generics.r-lib.org/reference/setops.html)und[union()](https://generics.r-lib.org/reference/setops.html)aus dem Packagebasewerden maskiert.
Das bedeutet: Wenn Sie von nun an die Funktion [filter()](https://dplyr.tidyverse.org/reference/filter.html) verwenden, nutzen Sie die [filter()](https://dplyr.tidyverse.org/reference/filter.html) aus dem Package dplyr, und dasselbe gilt für die übrigen von dplyr maskierten Funktionen. Sie können die maskierten Funktionen jedoch weiterhin verwenden, müssen dafür aber den Namen des Packages vor dem Namen der Funktion angeben, wie folgt:
stats::filter()
stats::lag()
base::intersect()
base::setdiff()
base::setequal()
base::union()Auf diese Weise teilen Sie R explizit mit, welche Funktion Sie verwenden möchten. Beachten Sie die zwei Doppelpunkte (:) zwischen dem Namen des Packages und dem der Funktion.
Maskierte Funktionen
Beim Aktivieren eines Packages können Funktionen in anderen Packages maskiert werden. Das liegt in der Regel daran, dass die Funktionen in den verschiedenen Packages denselben Namen haben. Um maskierte Funktionen zu verwenden, müssen der Name des Packages und zwei Doppelpunkte (:) dem Funktionsnamen vorangestellt werden.
3.1.7.2 Error bei der Verwendung von Funktionen aus nicht aktivierten Packages
R gibt einen Fehler zurück, wenn Sie versuchen, Funktionen aus Packages zu verwenden, die nicht geladen sind. Im folgenden Beispiel versuchen wir, die Funktion splined() zu verwenden, die sich in einem Package befindet, das derzeit nicht aktiviert ist.
## Wir suchen die Ziffer 5 in einer Folge von 9 Ziffern
## Zeichenketten lassen sich mit der Funktion str_detect() aufspüren
str_detect(string ='1 2 3 4 5 6 7 8 9',
pattern = '5')Error in str_detect(string = "1 2 3 4 5 6 7 8 9", pattern = "5") :
could not find function "str_detect"Diese Fehlermeldung bedeutet schlicht, dass R die Funktion in keinem der derzeit aktivierten Packages finden kann. Um das zu beheben, müssen Sie entweder das Package aktivieren (mit der Funktion [library()](https://rdrr.io/r/base/library.html)) oder den Namen des Packages (und zwei Doppelpunkte) vor dem Funktionsnamen angeben, wie folgt:
stringr::str_detect(string ='1 2 3 4 5 6 7 8 9', pattern = '5')[1] TRUE3.1.8 Pacman lädt und installiert mehrere Packages gleichzeitig
R hat keine eingebaute Funktion, um mehrere Packages gleichzeitig zu aktivieren. Glücklicherweise gibt es die Funktion p_load() im Package pacman, mit der sich mehrere Packages gleichzeitig aktivieren und zusätzlich fehlende Packages installieren lassen.
Installieren Sie pacman mit folgendem Befehl:
install.packages("pacman")Anschließend können Sie mit p_load() mehrere Packages gleichzeitig aktivieren. Falls Ihnen eines der Packages fehlt, installiert pacman es:
p_load(survival, ggplot2, lubridate)3.1.9 Weitere Packages in R
Alle geprüften und zugelassenen Packages sind auf CRAN verfügbar.
- Alle Packages für R auf CRAN, alphabetisch sortiert.
- Alle Packages für R auf CRAN, nach Themen sortiert
3.2.0 Tidyverse: Ein revolutionäres Package
R galt traditionell als schwierige Sprache. Das ist recht leicht nachzuvollziehen, wenn man sieht, wie umständlich etwas so Triviales sein kann wie das Filtern von Zeilen in einer Tabelle. Angenommen, Sie haben eine Tabelle mit Beobachtungen zu Männern und Frauen und möchten für weitere Analysen nur die Männer behalten. In traditionellem R-Code schreibt man das wie folgt:
my_data_frame[my_data_frame$Sex == 'Male',]**my_data_frame**ist der Name unseres Data FramesSexist eine Spalte in unserem Data Frame- Das Symbol
**$**wird verwendet, um auf eine Spalte in einem Data Frame zu verweisen.**my_data_frame$Sex**bedeutet, dass wir die SpalteSexin**my_data_frame**verwenden wollen.- Wir verwenden eckige Klammern (
**[]**), um Zeilen so zu filtern, dass alleMalesbehalten werden. - In die eckige Klammer schreiben wir nach
Malesein Komma (**,**), um klarzustellen, dass wir Zeilen filtern. Nach dem Komma steht nichts, es sei denn, man möchte auch Spalten auswählen).
Dies ist eines von vielen Beispielen für R-Code, den die meisten nur schwer schreiben und lesen können. Tidyverse enthält Packages, die das Programmieren in R vereinfachen. Tatsächlich ermöglicht tidyverse es jedem, R-Code zu lesen und zu schreiben. Im Folgenden derselbe Code mit dplyr, einem der Packages, die zu tidyverse gehören:
filter(my_data_frame, Sex=="Males")Der obige Code ist leicht zu schreiben und leicht zu verstehen. Um tidyverse zu installieren, geben Sie folgenden Befehl ein:
install.packages("tidyverse")Dadurch wird tidyverse von CRAN heruntergeladen und installiert. Das Tidyverse-Package enthält mehrere Packages:
ggplot2tibbletidyrreadrpurrrdplyr
3.2.0 Bioconductor: Packages für die medizinische Forschung
Bioconductor ist vermutlich die weltweit meistgenutzte Software für Berechnungen und Analysen in der medizinischen Grundlagenforschung. Bioconductor besteht aus einer großen Zahl von Packages, die speziell für die medizinische Forschung entwickelt wurden. Die vollständige Liste der Packages finden Sie hier.
Packages aus Bioconductor installieren
Die Basis-Packages von Bioconductor werden mit folgendem Befehl installiert:
if (!require("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install()Installieren Sie bestimmte Packages, zum Beispiel „GenomicFeatures“ und „AnnotationDbi“, mit dem Befehl:
BiocManager::install(c("GenomicFeatures", "AnnotationDbi"))Wenn Sie Bioconductor installiert haben, können Sie mit folgendem Befehl auch alle verfügbaren Packages auflisten:
BiocManager::available()3.2.1 ROpenSci
ROpenSci besteht aus erfahrenen Forschenden und Softwareentwicklern, die ebenfalls Packages speziell für die medizinische Forschung entwickeln. Klicken Sie hier, um alle Packages zu sehen.
