Wer R lernen will, hat eine Vielzahl von Büchern zur Auswahl – zumindest, wenn englischsprachige Bücher in Frage kommen. Es gibt auch auf Deutsch einige Einführungen in die R-Programmierung (z. B. R kompakt von Daniel Wollschläger), doch der englischsprachige Markt ist deutlich größer.
Eine sehr praxisorientierte Einführung stammt von Garrett Grolemund: Hands-On Programming with R.
Garrett Grolemund arbeitet für RStudio (inzwischen Posit), wo er unter anderem Tutorials erstellt und Workshops abhält. Dabei arbeitet er eng mit Hadley Wickham zusammen, dem wohl bekanntesten und erfolgreichsten (messbar z. B. nach Anzahl der Downloads) Autor von R-Paketen. Grolemunds Anliegen ist es, anderen den Einstieg in Data Science leichter zu machen.
Garrett Grolemund und Hadley Wickham
Garrett Grolemund und Hadley Wickham haben auch schon gemeinsam ein Buch geschrieben: R for Data Science. Man kann es im einschlägigen Handel erwerben, es ist allerdings auch ganz bewusst kostenlos online lesbar unter http://r4ds.had.co.nz/ .
Für wen ist Hands-On Programming with R gedacht?
Hands-On Programming with R ist ein Buch für R-Einsteiger – man kann sich ohne Vorkenntnisse (sowohl hinsichtlich R im Speziellen wie auch Programmieren im Allgemeinen) gut darin zurechtfinden. Die R-Oberfläche wird beschrieben, es werden Objekte und Funktionen erläutert, es geht um Erweiterungspakete und die R-Hilfe. Grolemund erläutert Vektoren, Datentypen (Double, Integer, Text = Character, Logicals, Complex, Raw), Attribute, Matrizen, Arrays, Klassen, Datensätze. Es geht um Typ-Umwandlungen, auch das Laden und Speichern von Daten wird beschrieben.
R-Programmierung: Praxis, Praxis, Praxis
Was das Buch auszeichnet und den Spaß am R-Lernen deutlich erhöht, sind die Praxisbeispiele. In R-Einführungen gibt es manchmal ganz abstrakte, nutzlose Beispiele, um etwa Schleifen einzuführen. Nicht so hier: Es geht um Glücksspiele, Las Vegas, Zocken … Im ersten Projekt werden Zufallswürfel simuliert & manipuliert, im zweiten geht es ums Kartenspielen. Neue Konzepte werden immer dann eingeführt, wenn man mit den bisherigen Möglichkeiten nicht mehr weiterkommt. Im dritten Projekt wird schließlich ein Glücksspielautomat programmiert.
Besonders gefallen hat mir, wie praxis- und lösungsorientiert das schon etwas fortgeschrittene Thema S3-Klassen (Stichwort: objektorientiertes Programmieren) eingeführt wurde.
Programmieren vs. Statistik
R ist eine ambivalente Sprache, die ganz bewusst für zwei Ziele entwickelt wurde. Einerseits sollte sie es Anwendern so einfach wie möglich machen, Statistik zu betreiben. Viele statistische Tests können mit simplen Einzeilern ausgeführt werden. Viele Anwender haben sich deshalb für R entschieden und viele von ihnen haben mit Programmieren zumindest anfangs nicht viel am Hut. Wer tiefer einsteigt, merkt, dass man mit R auch erstaunlich flexibel programmieren kann. Zum Beispiel kann man Funktionen schreiben, die je nach Input wieder selbst Funktionen erzeugen.
Hands-On Programming with R ist als Programmier-Kurs gedacht, es geht hier überhaupt nicht um Statistik. Schwerpunkte sind stattdessen benutzerdefinierte Funktionen und Simulationen.
Rasante Weiterentwicklung von R
Eine Stärke von R ist die große, weltweit aktive Gemeinschaft von R-Anwendern und Programmieren, die ständig neue Pakete entwickeln und R damit sowohl anwendungs-freundlicher als auch leistungsfähiger machen. Ein Nachteil dieser rasanten Weiterentwicklung ist, dass Gedrucktes recht schnell veralten kann. Das zeigt sich hier im (ansonsten sehr nützlichen) Anhang: Zum Datenimport aus Excel empfiehlt Garrett Grolemund das XLConnect-Paket. Nachteil dieses Pakets: Es basiert auf Java. Typisches Problem: R und Java können nicht mit einander. Auf meinem 64bit-Windows-System war eine 32bit-Java-Version installiert, die ich mit 64bit-R nicht nutzen konnte. Auch wenn man es auf dem eigenen System hinbekommt – auf einem anderen Rechner (Laptop, Arbeit, Kollege …) droht das gleiche Szenario. Daher ist es besser, auf die Java-Abhängigkeit zu verzichten. Hadley Wickhams readxl-Paket leistet das. Wer von R aus Excelmappen auch bearbeiten will, kann auf openxlsx zugreifen, das auf C++ basiert und damit ebenfalls ohne Java auskommt und zudem schneller ist als XLConnect. (Siehe auch den Beitrag Excel-Datensätze in R laden: Geschwindigkeits-Test verschiedener R-Pakete.)
Für andere Dateiformate wie SAS, SPSS und Stata empfiehlt Grolemund das foreign-Paket aus der Base-R-Installation. Heutzutage würde ich eher zu haven von Hadley Wickham raten.
Hands-On Programming with R im Vergleich zu anderen R-Büchern
Hands-On Programming mit R ist jedem zu empfehlen, der mit Spaß in die R-Programmierung einsteigen möchte. Wer lernen will, mit R Statistik bzw. Data Science zu betreiben, sollte lieber mit dem bereits oben erwähnten R for Data Science (kurz R4DS) von Grolemund / Wickham beginnen. Wer noch tiefer in die R-Programmierung einsteigen möchte, dem sei Advanced R von Hadley Wickham nahe gelegt, das ebenfalls online zur Verfügung steht: http://adv-r.had.co.nz/ . Dieses Werk ist allerdings sehr anspruchsvoll, man sollte viel Zeit einplanen, wenn man alle Konzepte wirklich verstehen und nachvollziehen will, und es ist weit abstrakter und weniger praxisorientiert als Hands-On Programming with R. Wer sich speziell für Machine Learning mit R interessiert, dem empfehle ich Applied Predictive Modeling von Max Kuhn, dem Autor des caret-Pakets, und Kjell Johnson.
Viel Erfolg auf dem Weg zu neuen R-Kenntnissen!
Zum Buch: Hands-On Programming with R (Garret Grolemund)
Advanced R – 2. Auflage (Hadley Wickham)
Immer noch lesenswert und ungewöhnlich: The R Inferno (Patrick Burns)
Ein Gedanke zu „R lernen mit Hands-On Programming with R von Garrett Grolemund“