Bis vor kurzem habe ich das plotly-Paket von Carson Sievert fast nur mit der ggploty()-Funktion genutzt. Doch plotly kann so viel mehr! Hier verknüpfen wir zur Datenvisualisierung zwei interaktive Diagramme, sodass man aus einem Übersichtsdiagramm Gruppen auswählen kann, die dann in einem detaillierteren Diagramm automatisch hervorgehoben werden. Präsentation per Dashboard: flexdashboard Die Analyse ist in … „Zwei interaktive Diagramme in R verknüpfen ohne Shiny: plotly, crosstalk“ weiterlesen
Kategorie: R-Programmierung
Beiträge zur R-Programmierung / RStudio. Tipps & Tricks zur freien Statistik-Software, Data Mining, Visualisierungen, Anwendungsbeispiele, Paket-Empfehlungen. #rstats
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
Verdeckte Korrelationen sichtbar machen in R mit linearen Modellen
Nach meinem Eindruck erhalten verdeckte Korrelationen weniger Aufmerksamkeit als ihre bekannteren Kollegen, die Scheinkorrelationen. Dabei stellen beide Phänomene ähnliche Herausforderungen für die Datenanalyse dar. Eine verdeckte Korrelation liegt vor, wenn ein Zusammenhang zwischen zwei Variablen besteht, aber nicht direkt sichtbar wird, weil er von (mindestens) einer anderen Variable verdeckt oder überlagert wird. Kein Zusammenhang zwischen … „Verdeckte Korrelationen sichtbar machen in R mit linearen Modellen“ weiterlesen
Scheinkorrelationen aufdecken in R mit linearen Regressionsmodellen
Störche bringen Babies – das wohl bekannteste Beispiel der Statistik für eine klassische Scheinkorrelation. Der Zusammenhang ist tatsächlich statistisch nachweisbar – es handelt sich jedoch (nach heutigem Wissen) nicht um einen Kausalzusammenhang. Auch wenn uns das inhaltlich bekannt ist – wie können wir das statistisch belegen? In anderen Anwendungsfällen wird uns inhaltlich vielleicht nicht so … „Scheinkorrelationen aufdecken in R mit linearen Regressionsmodellen“ weiterlesen
Schleifen parallelisieren in R mit foreach
Schleifen haben einen schlechten Ruf in R: Sie gelten nicht zu unrecht als langsam. Oft ist es möglich, Schleifen zu vermeiden, etwa durch vektorisierte Funktionen, mit Funktionen aus der apply-Familie (wie lapply) oder mit map-Funktionen aus dem purrr-Paket. Manchmal wäre es jedoch recht aufwändig, R-Code so umzuschreiben, dass Schleifen eliminiert werden. Dann ist es nützlich, … „Schleifen parallelisieren in R mit foreach“ weiterlesen
R-Code parallelisieren bei unterschiedlichen Laufzeiten: clusterApplyLB()
In einem früheren Beitrag / Video nutzten wir die clusterApply()-Funktion, um R-Code zu parallelisieren. Wie sieht es aus, wenn sich die Laufzeiten der einzelnen Aufgaben deutlich unterscheiden? Zu Demonstrationszwecken stellen wir eine simple Aufgabe: Sys.sleep, das heißt „Pause machen“. In realen Anwendungen stehen hier dann Berechnungen / Datenoperationen, die unterschiedlich lange dauern. Vorbereitung der Parallelisierung … „R-Code parallelisieren bei unterschiedlichen Laufzeiten: clusterApplyLB()“ weiterlesen
R-Code parallelisieren mit parallel::clusterApply()
R-Code ist oft schnell zu schreiben, aber nicht immer schnell genug in der Ausführung. Eine Methode, dem abzuhelfen, besteht darin, R-Code zu parallelisieren, d. h. mehrere Prozessorkerne oder mehrere Arbeiter einzusetzen. Das parallel-Paket, das zur Base-R-Installation gehört, bietet mit der clusterApply()-Funktion eine elegante Möglichkeit. Parallelisierung: Vorgehen und Vorbereitung Ziel ist es, 200 Regressionsmodelle mit jeweils … „R-Code parallelisieren mit parallel::clusterApply()“ 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