Flaschenhälse (langsame Code-Abschnitte) in R finden mit Profiling: profvis

Wenn R-Code zu langsam läuft, sind es oft nur ganz bestimmte Stellen, die optimiert werden müssen. Nicht immer ist sofort klar, welche Codezeilen das sind. Daher ist es sinnvoll zu wissen, wie man solche Flaschenhälse (oder „Bremsklötze“) effizient und elegant finden kann. Ein hilfreiches Werkzeug dafür ist das sogenannte Profiling: Das automatisierte Erstellen eines Profils, … „Flaschenhälse (langsame Code-Abschnitte) in R finden mit Profiling: profvis“ weiterlesen

Doubletten ausschließen in R: unique() und wie man es schneller macht

Eine Kundin erzählte mir kürzlich, dass sie die Base R-Funktion unique() nutzt, um Doubletten aus ihren Daten auszuschließen. Sie erhält damit das gewünschte Resultat, allerdings sei ihr Code zu langsam. Zwei Ideen kamen mir, den Code zu beschleunigen: 1. Statt alle Spalten bei der Suche nach Doubletten zu berücksichtigen, müsste eine Auswahl an Spalten genügen … „Doubletten ausschließen in R: unique() und wie man es schneller macht“ weiterlesen

Daten mit R in Blöcken verarbeiten mit iotools: Big Data-Werkzeug

Beim Verarbeiten großen Datenmengen mit R kann man an Grenzen des Arbeitsspeichers stoßen. In R kann das früher geschehen, als man meinen möchte. Wer beispielsweise über 16 GB RAM verfügt und einen 10 GB-Datensatz analysieren möchte, wird feststellen, dass R bei bestimmten Operationen langsam und ineffizient wird. Laut R-Handbuch kann das bereits geschehen, wenn etwa … „Daten mit R in Blöcken verarbeiten mit iotools: Big Data-Werkzeug“ weiterlesen

data.table vs. dplyr und dtplyr: Benchmarks

Zwei der populärsten Pakete zur Datenaufbereitung in R sind data.table (Matt Dowle, Arun Srinivasan, viele Mitarbeiter) und dplyr (Hadley Wickham, viele Mitarbeiter). Während data.table zu Recht den Ruf hat, sehr schnell zu sein, hat dplyr vielen den Einstieg in R enorm erleichtert. Geschwindigkeitsvergleiche: data.table vs. dplyr – beachte dtplyr! Es gibt bereits seit Jahren eine … „data.table vs. dplyr und dtplyr: Benchmarks“ 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