Kurs
Data Science ist heute fester Bestandteil praktisch jeder Branche. Ob Banking, Versicherungen oder Gesundheitswesen – im Sekundentakt entstehen riesige Datenmengen. Umso wichtiger ist es, diese Daten in verwertbare Erkenntnisse zu verwandeln und darauf aufzubauen. Dafür stehen zahlreiche Programmiersprachen zur Auswahl. Unter ihnen führen Python und R klar die Bestenlisten an.
Sowohl Python als auch R sind im Data-Science-Umfeld weit verbreitet. Beide Sprachen bieten eine große Auswahl an Tools mit Funktionen, die sich hervorragend für Data-Science-Aufgaben eignen. Während Python eine vielseitige Allzwecksprache ist, ist R eine Programmiersprache und Umgebung für statistisches Rechnen und Grafik.
Überblick über die Ökosysteme von Python und R
Schauen wir uns an, was die Sprachen auszeichnet – und wo ihre Grenzen liegen.
Programmiersprache Python

Python ist eine interpretierte, hochsprachige, allgemeine Programmiersprache. Sie wurde 1991 von Guido van Rossum veröffentlicht. Seitdem ist Python in vielen Bereichen äußerst beliebt – auch in der Data Science. Heute zählt Python zu den am schnellsten wachsenden Programmiersprachen weltweit.
Gründe für die große Popularität sind unter anderem:
- Objektorientierung
- Allzwecksprache
- Hervorragende Community-Unterstützung
- Einfach zu verstehen und zu lernen
- Leistungsstarke Pakete wie pandas, NumPy und scikit-learn, die Python zur Top-Wahl für Machine Learning machen.
Bei spezialisiertem statistischem Rechnen hinkt Python jedoch hinterher und bietet – im Gegensatz zu R – weniger dedizierte Pakete.
Programmiersprache R

R ist eine Software für statistisches Rechnen und Grafik, unterstützt von der R Foundation for Statistical Computing. R erschien erstmals im August 1993, die erste stabile Version folgte 1995. Seitdem ist R bei Statistikerinnen und Statistikern sowie Data Minern für statistische Analysen weit verbreitet.
Merkmale, die R besonders machen:
- Pakete für nahezu jede denkbare statistische Anwendung. Auf CRAN sind derzeit über 10.000 Pakete verfügbar.
- Exzellente Visualisierungsbibliotheken wie ggplot2.
- Eigenständige Analysen mit integrierten Paketen.
Der Nachteil: In puncto Performance ist R nicht die schnellste Sprache und kann bei sehr großen Datensätzen speicherhungrig werden.
Python und R gemeinsam nutzen
R und Python sind jeweils starke Werkzeuge, werden aber oft als Konkurrenten gesehen. Stattdessen sollten wir die Stärken beider Sprachen kombinieren – so holen wir das Beste aus beiden Welten heraus.
In der Data-Science-Community arbeiten viele ausschließlich mit einer einzigen Sprache. Es gibt zwar auch diejenigen, die sowohl Python als auch R nutzen, doch ihr Anteil ist gering. Gleichzeitig wünschen sich viele, die sich auf eine Sprache festgelegt haben, Zugriff auf bestimmte Fähigkeiten der anderen. So hätten R-Nutzende mitunter gern die objektorientierten Möglichkeiten von Python, während Python-Nutzende die breite Palette statistischer Verteilungen in R zu schätzen wüssten.
Die folgende Grafik zeigt die Ergebnisse einer Umfrage von Red Monk aus dem dritten Quartal 2018. Grundlage sind die Popularität der Sprachen auf Stack Overflow und GitHub. Deutlich wird: R und Python sind für Data-Science-Aufgaben beide hoch angesehen. Es spricht also nichts dagegen, sie im selben Projekt einzusetzen. Unser Ziel sollte bessere Analysen und bessere Insights sein – nicht die Fixierung auf eine bestimmte Sprache.

Wie lassen sich Python und R in einem Projekt vereinen?
SQL in R- oder Python-Skripte einzubetten, ist für die meisten selbstverständlich. Warum also nicht auch die statistische Stärke von R mit den Programmiermöglichkeiten von Python kombinieren? Das ist möglich – passende Bibliotheken übernehmen den reibungslosen Wechsel.
Grundsätzlich gibt es zwei Ansätze, um Python und R Seite an Seite in einem Projekt zu nutzen.
R in Python
Dabei rufst du R-Funktionen aus einem Python-Skript auf. Geeignete Bibliotheken sind:
1. PypeR
PypeR bietet einen einfachen Weg, aus Python per Pipes auf R zuzugreifen. PypeR ist im Python Package Index verfügbar und damit leicht zu installieren. Besonders nützlich ist es, wenn keine häufigen interaktiven Datentransfers zwischen Python und R nötig sind. Durch die Ausführung von R über eine Pipe gewinnt das Python-Programm Flexibilität bei Subprozessen, Speicherverwaltung und Portabilität über gängige Betriebssysteme hinweg, darunter Windows, GNU/Linux und macOS.

Konventionen für die Umwandlung von Python- in R-Objekte
2. pyRserve
pyRserve ist eine weitere Bibliothek für diesen Zweck. Sie nutzt Rserve als RPC-Gateway. Über diese Verbindung lassen sich Variablen in R aus Python setzen und R-Funktionen remote aufrufen. R-Objekte werden als Instanzen von Python-Klassen verfügbar gemacht, wobei R-Funktionen in vielen Fällen als gebundene Methoden an diese Objekte erscheinen.
3. rpy2
Die Bibliothek rpy2 wird häufiger genutzt als die beiden zuvor genannten, da sie aktiv und intensiv weiterentwickelt wird. rpy2 bettet R in einen Python-Prozess ein. Das Framework übersetzt Python-Objekte in R-Objekte, übergibt sie an R-Funktionen und konvertiert deren Ausgaben zurück in Python-Objekte.

Ein Vorteil von R in Python: Du kannst großartige R-Pakete wie ggplot2, tidyr, dplyr etc. bequem in Python verwenden. Ein Beispiel zeigt, wie sich ggplot2 für Mapping in Python einsetzen lässt.
- Basis-Plot

https://rpy2.github.io/doc/latest/html/graphics.html#plot

- Geometrie

https://rpy2.github.io/doc/latest/html/graphics.html#geometry

rpy2-Ressourcen
Für eine umfassende Einführung in Installation und Nutzung von rpy2 empfehlen sich diese Ressourcen:
- Offizielle rpy2-Dokumentation
- RPy2: Combining the Power of R + Python for Data Science
- Accessing R from Python using RPy2
Python in R
Auch Python-Skripte lassen sich in R ausführen, zum Beispiel mit folgenden Optionen:
1. rJython
Dieses Paket stellt eine Schnittstelle zu Python über Jython bereit. Es ist dafür gedacht, dass andere Pakete Python-Code zusammen mit R einbetten können.
2. rPython
rPython ermöglicht Aufrufe von Python aus R. Du kannst Python-Code ausführen, Funktionen aufrufen, Variablen zuweisen und abrufen – alles aus R heraus.
3. SnakeCharmR
SnakeCharmR ist eine modernisierte Weiterentwicklung von rPython. Es ist ein Fork von ‘rPython’, nutzt ‘jsonlite’ und bringt viele Verbesserungen mit.
4. PythonInR
PythonInR erleichtert den Zugriff auf Python aus R, indem es Funktionen für die Interaktion mit Python bereitstellt.
5. reticulate
Das Paket reticulate bietet einen umfassenden Werkzeugkasten für die Interoperabilität zwischen Python und R. Unter allen Alternativen ist es am weitesten verbreitet – nicht zuletzt, weil es von RStudio intensiv weiterentwickelt wird.
Reticulate bettet eine Python-Session in die R-Session ein und ermöglicht nahtlose, performante Zusammenarbeit. So kannst du Python-Code in R „verweben“ und Projekte schaffen, die beide Sprachen kombinieren.

Das reticulate-Paket bietet unter anderem:
- Aufrufe von Python aus R – z. B. in R Markdown, durch Sourcen von Python-Skripten, Import von Python-Modulen oder interaktiv innerhalb einer R-Session.
- Übersetzung zwischen R- und Python-Objekten (z. B. zwischen R- und pandas-Dataframes oder zwischen R-Matrizen und NumPy-Arrays).
- Flexible Anbindung an verschiedene Python-Versionen, inklusive virtueller Umgebungen und Conda-Umgebungen.
Reticulate-Ressourcen
Nützliche Ressourcen zur Arbeit mit reticulate:
- Die Dokumentation ist sehr ausführlich und bietet zahlreiche Beispiele und Use Cases für den Einstieg.
- https://longhowlam.wordpress.com/2017/04/10/test-driving-python-integration-in-r-using-the-reticulate-package/
- SNAKES IN A PACKAGE: COMBINING PYTHON AND R WITH RETICULATE
Fazit
R und Python sind starke Werkzeuge und in vielen Fällen jeweils ausreichend, um Data-Science-Aufgaben von Grund auf zu lösen. Oft musst du nicht beide in einem Projekt einsetzen. Doch Kenntnisse in beiden Sprachen zahlen sich aus – sie geben dir die Freiheit, im passenden Umfeld zu arbeiten. Entscheidend sind die Kompetenzen, nicht die Tools. Sei offen für neue Werkzeuge und Sprachen, wenn sie dir helfen, Probleme einfacher zu lösen.
Wenn du mit einer der beiden Sprachen starten möchtest, besuche DataCamps Kurse Introduction to Python oder Introduction to R. Schau dir auch unser Python Tutorial for Beginners an.
Quellen:
- Interfacing R and Python — Andrew Collier
- From ‘R vs Python’ to ‘R and Python’