Some quibbles about “The R Book” by Michael Crawley

December 13, 2010

(This article was first published on Portfolio Probe » R language, and kindly contributed to R-bloggers)

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:


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:


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.


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?


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.


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?


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.

To leave a comment for the author, please follow the link and comment on their blog: Portfolio Probe » R language. offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...

Tags: , ,

Comments are closed.

Search R-bloggers


Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)