Some quibbles about “The R Book” by Michael Crawley
December 13, 2010
A friend recently bought The R Book and I said I would tell him of problems that I’ve noticed with it. You can eavesdrop.
Page 4
The word “library” is used instead of “package”. This (common) error substantially raises the blood pressure of some people — probably to an unwarranted extent.
An R package is a group of functions, data and their documentation. These are the things that are in repositories like CRAN (where there are over two thousand packages). A package is installed onto your machine into a library.
You are unlikely to call a book a library; don’t call a package a library.
Part of the problem is that packages are attached with the library function:
> library(fortunes)
That is why some instructions have you do the same thing via:
> require(fortunes)
Some of the people whose blood pressure is abnormally raised by seeing this mistake are very important to R, so please get this right.
Page 11
An example value is:
3.9+4.5i
that is, a complex number. This is in the chapter called “Essentials of the R Language”. I’ve been using R and a language not unlike R for a quarter century. The only time I recall using complex numbers is when documenting them. Complex numbers don’t match my definition of “essential”.
There is a certain amount of irony for a 600-word blog post to take n lines to complain about a 900-page book wasting one line. However, the complex number is an extreme example of a common occurrence in the chapter. There is a lot of the chapter that I don’t find particularly essential.
My take on “essential” is Some hints for the R beginner.
Page 16:
A<-1:10
B<-c(2,4,8)
These are two examples of a general feature: while the author’s keyboard seems to work perfectly fine for text, the space-bar is mysteriously broken for R code.
It is clearer to write these as:
> A <- 1:10
> B <- c(2, 4, 8)
The assignment arrow shows up as a separate entity. Spacesaidunderstanding.
Page 21
The same thing, but this time it’s serious.
x<5
really, really should have spaces around the less-than operator.
There is no trouble with this particular example, but what if the example were with minus five?
x<-5
does not give you a logical vector with TRUE values when x is less than minus five. It changes x to have the single value 5.
This and a whole bunch of other R gotchas are in The R Inferno.
Page 107
The values in the body of a matrix can only be numbers.
That is a false statement. In particular, if x is a numeric matrix, then the result of
x < -5
is a matrix of logical values (and is the same dimension as x).
Pages 323-324
This be praise, not quibble.
The book uses “explanatory variables” and “response” in the statistical regression context. It doesn’t enter into the dependent-independent muddle.
Other views
Amazon has several reviews of The R Book. There is a range of opinions from very positive to quite negative. A common complaint is that the material is disorganized.
Questions
The points I have raised are from a quick glance through the book. Are there other things in the book that should be pointed out to help the unwary?
Epilogue
I don’t think there is such a thing as the best book on R. There can be the best book on R for you as an individual. Which one is the best will depend on where you are and where you want to go. A partial list of your choices is Books related to R.


Kenn,
Yes, typically only one library per version of R. I interpreted my sentence to mean that — I can see that others might interpret it differently.
The major criticism I have of this book is the bizarre way it introduces vectors, dataframes. They are used way before they are defined.
Factors are introduced (unclearly) and then we are launched into an example using read.table and dataframes!
Similarly tapply is used out of the blue and we get the terms “response variable” (never defined in book as far as I can see) and “categorical explanatory variable” ( factor I think he means here) and we are still waiting to understand what a data.frame is.
Thankfully I have being doing a few courses with R so had already read how important these structures are.
To me it looks like he has not gone over his chaotic first draft and reorganised everything.
Hoping for better as I get more into it but definitely not a first book on R.
Luckily people have kindly put a lot of stuff to help us R newbies
Stephen,
Do you have the second edition or the first edition?
second edition ( the green book) – I am now on page 61!