Übersicht zu den wichtigsten 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.
- readr# (CSV), readxl+ (XSL), data.table (CSV), XML und xmlconvert (XML), jsonlite (JSON), RProtobuf (Google Protocol Buffers files/messages), curl (file transfer) sowie httr (http request) für das Einlesen resp. Schreiben von Daten(Streams)
- skimr für Descriptive statistics
(ergänzend zu den internen Funktion: summary, str und dim)
- dplyr# und data.table für allgemeine Datenmanipulationen von Data Frames
- tidyr# für die Transformation der Struktur von Data Frames (long/wide format), ersetzt die früheren Packages reshape (2005-2010) und reshape2 (2010-2014)
- purrr# für das effektive Arbeiten mit Listen und Vectoren resp. für optimierte Schleifenimplementierung (functional programming)
- lubridate+, xts, zoo, tsibble, tibbletime, timeSeries, anytime und tsbox für die Behandlung von Zeitstempeln / Zeitserien (dates and times)
- stringr# für Stringmanipulationen
- 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) - 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 )
- 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)
- officer, rmarkdown, flexdashboard, shinydashboard, knitr, bookdown und pandoc für Präsentationen / Dashboards resp. für Dokumentenerstellung und -konversionen, ergänzend: tufte und tint (Edward Tufte Style) sowie rticles (Formate für Veröffentlichungen in verschiedenen Journals)
- Cairo für die Erstellung von Graphikdateien (PNG, JPEG, TIFF etc.)
- Shiny (Web-Apps), plumber (REST APIs) und mailR (Mailversand) für die Implementierung externer Schnittstellen
- expectdata und assertr für die Implementierung von Assertions
- RUnit, testthat, unitizer und tinytest für (Unit) Testing – ergänzend/in Kombination zum internen R-Testmechanismus ‚R CMD check‘
Darüber hinaus existieren zahlreiche sehr spezifische Pakete, wie gTrendsR für den Zugriff auf Google Trend Daten, 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:
- Dask,
- pandas,
- Numba,
- SKLearn (scikit-learn),
- Matplotlib (weitverbreitet, aber mit eingeschränkter 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)
- Datashader, HoloViews, Scipy, NLTK und PySpark.
- NumPy für numerische Berechnungen (unter Nutzung von spezifischen Datentypen sowie von Vektoren, Matrizen oder mehrdimensionalen Arrays),
- Packages für den Zugriff auf Machine-Learning Frameworks: torch (für PyTorch), tensorflow (für TensorFlow)
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 R als auch für Python stehen Entwicklungsumgebungen (IDEs) zur Verfügung:
- RStudio (R; open source and commercial editions; Desktop und Browser)
- Jupyter Notebook (Python, R u.a.; open source, früher: IPython Notebooks; Browser)
- Spyder (Python; Desktop),
- PyCharm von JetBrains (Python; Desktop)
- Colab Notebooks von Google (Python; online)
- Kaggle Notebooks (Python, R; online)