Übersicht zu wichtigen Packages und IDEs für R und Python (Data Science)

R-Packages

Grundlegende R-Packages werden in der folgenden Liste genannt.

Pakete der Tidyverse Collection – ein Set ausgewählter, aufeinander abgestimmter R-Packages, die einfach miteinander kombiniert werden können – sind dabei mit # (Kernbibliotheken) resp. mit + (ergänzende Pakete) gekennzeichnet. Pakete mit HTML Output (HTML Widgets) sind mit HTML gekennzeichnet – diese Pakete können für RMarkdown HTML und Shiny dashboards verwendet werden.

Daten einlesen / schreiben

Daten manipulieren

Daten visualisieren

  • ggplot2# (und abgeleitete Extensions) sowie WVPlots für die Datenvisualisierung / für die Erstellung von Graphiken
    (unabhängig davon erlaubt das interne graphics Package die Erstellung von verschiedenen generischen Plots, ohne dass ein externes Package notwendig wäre)
  • ggvis, plotly HTML und rbokeh HTML für interaktive Graphiken (letztere auf unter Verwendung der JS-Bibliothek Bokeh)
  • corrplot für die Darstellung von Correlation Plots
  • DT HTML für die Tabellen-Darstellung unter Verwendung der JS-Bibliothek DataTables
  • tmap für (statische) Kartendarstellungen, Leaflet (for R) HTML für (interaktive) Kartendarstellung
    (Leaflet unter Verwendung der JS-Bibliothek Leaflet )

Daten analysieren

  • factoextra für Multivariate Data Analyses
  • igraph für die Analyse von Netzwerken / Graphen (Visualisierung: ggraph, alternativ/ergänzend: graphlayouts)
  • tidytext für Text Mining
  • caret (Classification And REgression Training) und h2o für Machine Learning
  • forecastLM für forecasting regular time series data with a linear regression model
  • bwimage, autothresholdr und caiman für Bildanalysen
  • imager für die Bildverarbeitung
  • nlrx für die Modellierung komplexer Systeme (Multi-Agenten-Simulationen, unter Verwendung von NetLogo)

Daten präsentieren

Anwendungen effizient entwickeln

Darüber hinaus existieren zahlreiche sehr spezifische Pakete, wie gh für den Zugriff auf die GitHub API, wbstats und WDI für den Zugriff auf Daten und Statistiken der Weltbank, rmangal für den Zugriff auf die Mangal Datenbank, RSAGA für den Zugriff auf das open-source GIS SAGA oder bdvis für die Visualisierung von Biodiversitäts-Informationen.

rOpenSci verwaltet weitere R-Packeges mit dem Fokus auf offene und reproduzierbare Forschung, Datenzugang und einfach zu bedienende Tools für Datenanalysen.

Zugriffe auf Python-Module und -Funktionen von R aus sind mit reticulate möglich. C++ Code kann mit Hilfe des Rcpp Package integriert werden.

sparklyr und mlflow ermöglichen die Nutzung der Frameworks Apache Spark (Cluster Computing) und databricks mlflow (Lebenszyklus-Management von Machine-Learning-Projekten). Der Zugriff auf Plattformen erfolgt u.a. mit cloudml (Google CloudML) und RAthena/paws (Amazon Web Services). dockr ist ein einfaches Werkzeug, um ein lightweight Docker Container – Image für eine R-Umgebung zu erstellen.

Python-Bibliotheken

Data Science relevante externe Python-Packages sind insbesondere:

  • NumPy für komplexere numerische Berechnungen – unter Nutzung von spezifischen Datentypen/ Vektoren, Matrizen oder mehrdimensionalen Arrays
  • Pandas zur Datenanalyse und Datenverarbeitung
  • Matplotlib (weitverbreitet, aber eingeschränkte Funktionalität), Seaborn, Bokeh, plotnine und ggpy für die Datenvisualisierung / für die Erstellung von Graphiken (die letzten beiden basierend auf dem “Grammar of Graphics” Prinzip von ggplot2 von R)
  • SciPy, Datashader, HoloViews und PySpark für wissenschaftliches Rechnen, Visualisierung und damit zusammenhängende Tätigkeiten
  • Machine Learning models: SKLearn (scikit-learn), Keras, XGBoost, LightGBM, CatBoost
  • Packages für den Zugriff auf Machine-Learning Frameworks: torch (für PyTorch), tensorflow (für TensorFlow)
  • NLTK (Natural Language Toolkit) für Anwendungen der Computerlinguistik
  • Dask für die Skalierung (paralleles Computing)
  • QuickDa für ein einfaches data cleaning, data exploration, and data visualization (unter Nutzung von Pandas, Matplotlib, Seaborn, Plotly)
  • ELI5 für die Visualisierung / Debuggging von Machine Learning models (scikit-learn, Keras, LightGBM, XGBoost, CatBoost)

Mit Anaconda steht eine Python-Distribution zur Verfügung, die die wichtigsten für Data Science relevanten externen Bibliotheken bereits integriert hat.

Python verfügt daneben über interne Built-in Module (interne Bibliotheken), die die Standard Funktionen ergänzen. Für Data Science Anwendungen sind dies insbesondere die Module:

  • Collections: das Module stellt zusätzlich zu den Standard Daten-Container (List, [ordinary] Tuple, Set, [unordered] Dictionary) weitere Containertypen bereit, insbesondere: namedtuple, deque (eine optimierte Liste), Counter, OrderedDict, defaultdict und ChainMap

IDEs

Sowohl für Datenanalysen mit R als auch für Analysen mit Python stehen umfangreiche Entwicklungsumgebungen (Integrated Development Environments, IDEs) zur Verfügung.

Die beiden am weitesten verbreiteten Umgebungen sind RStudio und Jupyter Notebook:

  • RStudio (R; open source and commercial editions; Desktop und Browser)
  • Jupyter Notebook (Python, R u.a.; Open-Source-IDE, früher: IPython Notebooks; web-basierte Anwendung)

Alternativen zu diesen beiden Umgebungen haben sich insbesondere im Python-Umfeld entwickelt:

  • VS Code (Visual Studio Code, Microsoft)
  • Spyder (Python; „Scientific Python Development Environment“; Open-Source-Desktopanwendung mit einer Oberfläche ähnlich wie RStudio; Teil der Anaconda-Distribution),
  • PyCharm von JetBrains (Python; Desktop)
  • Colab Notebooks von Google (Python; online)
  • Kaggle Notebooks (Python, R; online)
  • Thonny von der University of Tartu (Python IDE für Anfänger – ideal zum Programmieren lernen und lehren)
  • Atom von GitHub (Open-Source-IDE für Python – einsteigerfreundlich als auch in hohem Maße anpassbar für erfahrene Entwickler )