Wer sich an die freie Statistik-Software R heranwagt, findet mittlerweile eine Fülle an hilfreicher Literatur. Die Auswahl ist noch erheblich größer für diejenigen, die sich Fachbücher auf Englisch zutrauen. Für Norman Matloffs The Art of R Programming: A Tour of Statistical Software Design habe ich keine deutsche Version gefunden.
Die Expertise des Autors kommt wohltuend zum Tragen. Norman Matloff ist Professor für Informatik (computer science) und ehemaliger Professor für Statistik. Im Gegensatz zu anderen R-Büchern zeigt er nicht nur, wie man eine bestimmte Aufgabe mit R löst, sondern auch, wie R im Hintergrund „tickt“. Dabei stellt er eine Fülle von Praxisbeispielen vor, die von Einzeilern bis hin zu sehr anspruchsvollen Vertiefungen reichen. Beispiel: Er zeigt nicht nur den Umgang mit Datensätzen (data frames), sondern demonstriert auch, inwiefern sie als Listen sowie als Matrizen behandelt werden können.
Vergleiche von R mit anderen Programmiersprachen
Wer vor R bereits andere Programmiersprachen gelernt hat, insbesondere C (oder C++), wird von den Verweisen auf Gemeinsamkeiten und Unterschiede profitieren. Der Verbindung von R mit anderen Programmiersprachen ist ein eigenes Kapitel gewidmet, in dem es einerseits um C, andererseits um Python geht.
Weitere Highlights sind die Kapitel zur Optimierung zeitkritischer Funktionen sowie die ausführlichen Hinweise zum Debugging. Eine einfach umsetzbare Möglichkeit, Code schneller zu machen, ist der Byte Code Compiler, über den R seit Version 2.13 verfügt. Daneben gibt es an mehreren Stellen Beispiele zu Vorteilen der R-typischen Vektorisierung. Interessant fand ich allerdings auch, dass man auch mit großem Wissen manchmal nicht vorhersagen kann, welche Programmiervariante schneller ist. Dann hilft nur Ausprobieren – und das Wissen um Alternativen. Für R gilt in besonderem Maße, dass es oft viele Wege zum gleichen Ziel gibt.
R-Code parallelisieren
Im letzten Kapitel bietet der Autor noch ein besonderes „Schmankerl“: Tipps, wie man die Arbeit mit R parallelisieren kann, sodass mehrere Prozessorkerne oder mehrere Rechner sich die Arbeit an einer aufwändigen Aufgabe teilen. Auch hier bleibt er praxisorientiert.
Hier finden Sie Beiträge zur Parallelisierung von R-Code.
Fazit: Ein wertvolles Buch für alle, die besser verstehen wollen, wie R „tickt“. Wer nur wissen will, wie er am schnellsten eine ganz bestimmte Analyse fahren kann, für den wird das Buch mit seinen rund 350 Seiten zu dick sein. Und wer alle Praxisbeispiele nachvollziehen will, kann sich an manchen extended examples die Zähne ausbeißen. Zu einigen Spezialthemen gibt es sicherlich umfassendere Literatur. So gibt es zwar ein Kapitel zu den grafischen Möglichkeiten, das aber nicht erschöpfend sein kann. Es enthält – typisch Programmierer-Blickwinkel – ein Spezialbeispiel, wie man in ein Diagramm einen Bereich einfügen kann, der einen Teil der dargestellten Kurve vergrößert.
Norman Matloff: The Art of R Programming: A Tour of Statistical Software Design