Fork me on GitHub

A review of "Learning R" by Richard Cotton (O'Reilly Media)

In "Learning R", data scientist and statistical consultant Richie Cotton provides an introduction to the R system for statistical computing organized around a typical workflow for data analysis. I've used R casually for a few years, but as a self-taught user I hoped that "Learning R" would fill in many of the gaps in my knowledge. The book is written in an easy, conversational tone, and Cotton conveys his deep knowledge of the material in a manner that is supportive rather than condescending. The chapters are grouped into three parts: the first is an introduction to the R language, the second focuses on data summary and analysis, and the third part is an appendix that provides a number of interesting supplemental materials. Part I provides a broad overview of many topics, including data frames, functions, classes, and packaging. I found Chapter 9, which focuses on the apply functions and their variants (e.g., the plyr tools) to be particularly helpful. Depending on your needs, Chapters 10 ("Packages") and 11 ("Dates and Times") could be skipped until the reader has specific need for that information. Part II focuses on actual data analysis, and there are many valuable tips in these chapters. Chapters 14 ("Exploring and Visualizing") and 15 ("Distributions and Modeling") will probably be of the greatest interest to most readers, and in the latter Cotton does a great job of directing readers to other good resources. Again, Chapter 17 ("Making Packages") can be treated as optional by most users. I think that most readers will skim or completely skip the appendices in Part III, but Appendix B ("some other things that you can do in R") is worth the time. The book includes lots of worked examples, and the end-of-chapter quizzes and exercises (with answer keys in Appendices C and D) help the reader build their skills. All in all, "Learning R" represents a good resource for the beginning R programmer, or for the self-taught R programmer who may have odd gaps in their knowledge, the author of this review included.

However, "Learning R" is not without its flaws. There were several places where I felt that a more detailed explanation would benefit the reader. For example, in the discussion of how to merge data frames Cotton does not discuss how variables are named in the new data frame. The vigilant reader can intuit a likely explanation for the naming scheme used by R, but those kinds of details can really help a new user understand how the tools work. I also felt that the chapter on graphics suffered from a lack of focus. While I applaud Cotton's goal of thoroughly describing the available tools for plotting, I think that R novices would benefit more from examples that use one of the three major graphics tools, rather than examples that use all three. These, however, are relatively minor complaints.

Disclaimer: I am a member of O'Reilly's Reader Review Program, and the publisher provided a gratis copy of the e-book for review.

I review for the O'Reilly Reader Review Program