Daten kann man u. a. mit Excel und SPSS auswerten. Sinnvoll ist es aber darüber hinaus eine Programmiersprache für die Datenanalyse zu erlernen. Diese bietet u. a. einen umfangreicheren Funktionsumfang für tiefergehende Analysen und die Reproduzierbarkeit der Auswertungen ist sichergestellt. Doch welche soll man lernen: R oder Python? In diesem Beitrag werden beiden Sprachen vorgestellt und dargestellt, wo die Stärken der jeweiligen Sprachen liegen.

R Project

Kurzer Überblick über R

Logo von R Project

R ist eine Programmiersprache für die statistische Datenanalyse und zur Erzeugung von Grafiken. Sie wurde 1992 entwickelt und erstmals veröffentlicht und lehnt sich an die Programmiersprache S an. Aktuell (Stand 05.01.2022) liegt diese in Version 4.1.2 (Bird Hippie) vor. Im TIOBE-Index (einem Ranking für Programmiersprachen) belegte R im Januar 2022 Platz 12.

R ist eine reine Programmiersprache ohne eine grafische Benutzeroberfläche, wie dies z. B. in SPSS der Fall ist. Dies bedeutet, dass man für die Datenanalyse entweder die Kommandos direkt eingibt oder in einer Skript-Datei schreibt und diese ausführt. Das Besondere in R ist, dass man diese durch sog. Pakete (Packages) erweitern kann. Hier zeigt sich, dass es für fast alle statistischen Verfahren und Problemstellungen entsprechende Pakete gibt bzw. bei neuen Verfahren oft auch neben einer Veröffentlichung in einer Zeitschrift entsprechende R-Pakete veröffentlicht werden. Aktuell können ca. 17.300 Pakete auf dem zentralen Server (CRAN) abgerufen werden. Weitere Pakete können über die Plattform github.com bezogen werden.

Vorteile von R

Die Arbeit mit Paketen hat den Vorteil, dass man nur die benötigten Pakete laden kann und so mit der Zeit eine Arbeitsumgebung in R einrichtet, mit der man gut arbeiten kann.

Ein weiterer Vorteil aus meiner Sicht für R – im Vergleich zu Python – sind die vielfältigen Möglichkeiten des Reportings. Mit R Markdown können recht schnell Reports erstellt und automatisiert werden. Mit entsprechenden Zusatzpaketen ist auch eine Ausgabe in Word möglich. Man kann diese an das Design der Einrichtung anpassen und automatisieren. Auch steht mit ggplot2 ein sehr gutes und umfangreiches Paket für die Datenvisualisierung zur Verfügung.

Die interaktive Aufbereitung von Ergebnissen ist mit dem Paket Shiny möglich. Mit diesem können z. B. Auswertungsdashboards entwickelt und dem Endanwender zur Verfügung gestellt werden.

In den letzten Jahren gab es auch eine Entwicklung von Paketen, die unter dem Label “Tidyverse” firmieren und für die einzelnen Schritte der Datenanalyse einfache und zielgerichtete Funktionen zur Verfügung stellen.

Durch den Aufbau der Sprache ist es auch möglich, eigene Funktionen und Pakete zu entwickeln und so eigene Auswertungsschritte zu automatisieren. Hierdurch ist es möglich, einen eigenen Analyse-Workflow anzulegen. Dies ist mit ein Grund, wieso ich meine Datenanalysen hauptsächlich in R erstelle.

Python

Kurzer Überblick über Python

Python ist eine sogenannte höhere Programmiersprache. Hier ist auch schon der erste Unterschied zu R: R wurde als Programmiersprache zur statistischen Datenauswertung entwickelt, während Python eine “allgemeine” Programmiersprache ist. Dies bedeutet, dass man mit Python ganze Programme programmieren oder die Sprache auch für die Entwicklung von Internet-Apps einsetzen kann.

Python wurde 1991 veröffentlicht und liegt aktuell (Stand 05.01.2022) in der Version 3.10.1 vor. Im TIOBE-Index belegte Python im Januar 2022 Platz 1 und ist hier in den letzten Monaten und Jahren immer in den vorderen Rängen zu finden.

Vorteile von Python

Ein Kennzeichen von Python ist der gut lesbare und knappe Programmierstil. Dies führt auch dazu, dass Python – im Vergleich zu anderen Programmiersprachen – leicht zu erlernen ist. Durch die Einfachheit des Programmierstils eignet sich Python auch gut, um schnell erste Prototypen von Programmen zu entwickeln.

Ähnlich wie bei R gibt es auch in Python die Möglichkeit mit sogenannten Modulen und Programmbibliotheken das Anwendungsgebiet der Sprache zu erweitern. Für die Datenanalyse werden hier hauptsächlich die Programmbibliotheken NumPy, pandas und für die Visualisierung Matplotlib verwendet.

Ein großer – und aus meiner Sicht zentraler – Vorteil von Python liegt im Bereich des Machine Learning und der KI. In den letzten Jahren hat sich Python, zumindest ist meine Wahrnehmung so, zur Standardsprache für diesen Bereich entwickelt. Auch im Vergleich zu R gibt es hier mehr Pakete und Ressourcen. Ein Blick in die Literatur zeigt auch, dass viele Bücher, die sich mit den Themen maschinelles Lernen und KI beschäftigen, immer auch die Umsetzung in Python darstellen. Recht bekannte Programmbibliothek für diesen Bereich sind scikit-learn und Keras.

Welche Sprache soll man denn nun lernen?

Nachdem wir nun einen kurzen Einblick in die beiden Sprachen erhalten haben, stellt sich immer noch die Frage, welche der beiden man lernen sollte. Eine abschließende Antwort wird man auf diese Frage nicht geben können. Aus meiner Sicht sollte man die Beantwortung von dem jeweiligen Anwendungsfall abhängig machen.

Wenn das Ziel ist, erhobene Daten auszuwerten und man dies mit den bisherigen “traditionellen” statistischen Methoden machen möchte, würde ich empfehlen, sich mit R zu beschäftigen. Dies wäre auch der Fall, wenn das Reporting von Ergebnissen in Vordergrund steht bzw. automatisiert werden soll.

Möchte man dagegen Verfahren im Bereich der künstlichen Intelligenz oder des maschinellen Lernens anwenden, sollte man sich mit Python beschäftigen. Ein Einsatz von Python ist auch immer dann sinnvoll, wenn in einem größeren Software-Projekt die Datenanalyse nur ein Teilschritt darstellt. Dadurch, dass Python eine allgemeine Programmiersprache ist, hat man hier mehr Möglichkeiten ein komplettes Programm, z. B. mit einer grafischen Benutzeroberfläche, zu entwickeln.

Für die Praxis: Entwicklungsumgebungen

Auch wenn beide Sprache mit einer Möglichkeit ausgestattet sind, Skripte zu erstellen, empfiehlt es sich für die tägliche Arbeit eine sogenannte Entwicklungsumgebung einzusetzen.

In R ist die Entscheidung hier relativ einfach. Mit RStudio steht hier eine umfangreiche Entwicklungsumgebung zur Verfügung, die sich in den letzten Jahren zum de-facto Standard entwickelt hat.

Bei Python gibt es mehrere Entwicklungsumgebungen, die man nutzen kann. Eine der bekanntesten ist PyCharm. Auch wird Visual Studio Code oft für die Entwicklung in Python eingesetzt. Speziell für statistische Auswertungen wurde die IDE Spyder entwickelt, welche einen ähnlichen Aufbau wie RStudio hat. Ich selbst nutze für die Entwicklung in Python VS Code und Spyder.

Oder doch beide nutzen?

Reicht es denn nun eine der beiden Sprachen zu können? Oder ist es nicht besser, beide, also R und Python, zu können? Auch hier gibt es keine einfache ja-oder-nein-Antwort. Vielmehr kommt es immer auf das Projekt an und sicherlich auch darauf, welche Sprache im Team oder von Kolleg*innen genutzt wird.

Interessant in diesem Zusammenhang ist, dass man seit Kurzem in RStudio auch Python-Skripte ausführen kann. Hierzu muss das Paket reticulate installiert werden. Um Python nutzen zu können, muss in den Einstellungen noch eine aktuelle Python-Version ausgewählt werden. Dies geht unter Tools >> Global Options >> Python.

Öffnet man danach eine Python-Datei und schreibt Python-Code, kann dieser markiert und ausgeführt werden.

Ausführen eines Python-Skripts in RStudio mit dem Paket reticulate

Gerade bei größeren Datenanalyse-Projekten kann dies sinnvoll sein, dass man auf das Beste aus der R- und Python-Welt zurückgreifen kann.

Fazit

In dem Beitrag wurden die Programmiersprachen R und Python vorgestellt und ausgeführt, welche Stärken diese aus meiner Sicht haben.

Abschließend würde ich allen Nutzern, die schon Erfahrungen mit SPSS (und evtl. dort auch mit der Syntax) haben oder klassische statistische Datenauswertungen durchführen möchten, empfehlen, sich zuerst mit R zu beschäftigen und zu erlernen. Ein gutes Buch zum Einstieg ist “R für Einsteiger” von Maike Luhmann sowie “Modernde Datenanalyse mit R” von Sebastian Sauer.

Liegt der Schwerpunkt des Interesses eher in Verfahren des maschinellen Lernens oder allgemein in der Programmierung von Programmen, empfiehlt sich Python als erste Programmiersprache. In Buchform ist hier für den allgemeinen Einstieg das Buch “Einstieg in Python” zu empfehlen. Soll es spezieller um maschinelles Lernen gehen, findet man einen guten Einstieg im Buch “Maschinelles Lernen” von Jörg Frochte. An dieser Stelle sei auch auf die Internetseite python-kurs.eu hingewiesen, die auch einen einfachen Einstieg in Python ermöglicht.

Aber ganz egal, wie die Entscheidung ausfällt, macht es auf jeden Fall Sinn eine der beiden Sprachen zu erlernen und somit tiefergehende Möglichkeiten der Datenanalyse zu haben. Dadurch, dass beide Sprachen unter einer Open-Source-Lizenz veröffentlicht werden, können diese auch kostenfrei eingesetzt werden. Und wer weiß, wenn man die Erste beherrscht, hat man vielleicht auch Lust sich noch in die Zweite einzuarbeiten 😊

Wer schon R oder Python nutzt, kann gerne in den Kommentaren über seine Erfahrungen berichten und über die Gründe, warum er sich für die jeweilige Sprache entschieden hat. Ich freue mich schon auf die Rückmeldungen!