Fortschrittsbalken anzeigen und Code parallelisieren in R: progressr und future

Heute will ich zwei Fliegen mit einer Klappe schlagen: Einen Fortschrittsbalken in R implementieren R-Code parallel ausführen (d. h. auf mehreren Prozessorkernen gleichzeitig) R-Pakete: progressr und future Für die Umsetzung des Fortschrittsbalkens habe ich mich für progressr von Henrik Bengtsson entschieden. Es bietet eine leistungsfähige API (Schnittstelle), sodass man nicht nur im Paket enthaltene Fortschrittsbalken … „Fortschrittsbalken anzeigen und Code parallelisieren in R: progressr und future“ weiterlesen

Textantworten (offene Nennungen) codieren mit R: stringr und regex

Oft wird ein großer Teil der Projektzeit nicht für die spannenden Modelle, sondern für die meist etwas weniger spannend empfundene Datenaufbereitung verwendet. Ein typischer Stolperstein dabei ist die Codierung von Textantworten (offene Nennungen). Wie können wir uns diese Arbeit mit R erleichtern? Anhand eines einfachen Beispiels („Warum treiben Sie Sport?“) beginnen wir mit einer Zuordnung … „Textantworten (offene Nennungen) codieren mit R: stringr und regex“ weiterlesen

Elegante R-Programmierung mit purrr::map und genisteten Datensätzen

2016 machte Hadley Wickham eine Idee populär, von der er zunächst selbst nicht sicher war, ob sie gut ist: genistete Datensätze (nested data frames). Das Prinzip ist einfach: Eine Spalte eines Datensatzes kann selbst ein Datensatz sein. Was zunächst umständlich oder verwirrend klingt, kann zum mächtigen Werkzeug werden – vor allem, wenn man viele gleich … „Elegante R-Programmierung mit purrr::map und genisteten Datensätzen“ weiterlesen

R-Code beschleunigen: Schleifen vs. Vektorisierung vs. Lookup-Tables

Kurzfassung:R erlaubt dem Anwender, vergleichsweise schnell Analysecode zu schreiben, da die formalen Anforderungen gering sind. Dafür gilt R nicht zu unrecht als vergleichsweise langsam hinsichtlich der Code-Laufzeit. Wir vergleichen drei Varianten, einem Datensatz mit Skat-Karten die Werte der Spielkarten zuzuordnen. Vektorisierter Code ist dabei um Längen schneller als eine Schleife. Eine noch schnellere Variante, ein … „R-Code beschleunigen: Schleifen vs. Vektorisierung vs. Lookup-Tables“ weiterlesen

Objektorientiertes Programmieren mit R: S3-Klassen

Die Open-Source-Software R ist ein großartiges Werkzeug zur Datenanalyse. Zahlreiche statistische Verfahren und Visualisierungen können mit wenigen Codezeilen erstellt werden. Dafür steht eine Vielzahl an Funktionen zur Verfügung. Funktionales Programmieren und Objektorientiertes Programmieren Automatisiert man solche Analysen, so bewegt man sich im Bereich des Funktionalen Programmierens. Für Datenanalysen ist das eine gute Wahl. Liegt der … „Objektorientiertes Programmieren mit R: S3-Klassen“ weiterlesen

Programmieren mit R: Alles, was passiert, ist ein Funktionsaufruf

R ist eine Implementierung der Programmiersprache S, die in den 1970er Jahren von John Chambers bei Bell Labs entwickelt wurde. R wurde ab 1992 von Ross Ihaka und Robert Gentleman geschrieben und ab 1993 verbreitet; seit 1997 gibt es das R Development Core Team, dem auch John Chambers angehört. Von Chambers stammt folgendes Zitat, das … „Programmieren mit R: Alles, was passiert, ist ein Funktionsaufruf“ weiterlesen