Version 
Location 
Description 
Submitted By 
Date submitted 
Date corrected 
Printed, PDF, ePub, Mobi, , Other Digital Version 
Page 303
Second numbered list 
The list of objectoriented systems in addon packages omits these two systems.
R6: A faster, lighterweight alternative to reference classes.
mutatr: A nowdefunct package for prototypebased OOP, similar to proto.

Richie Cotton 
Oct 15, 2015 


CH2
Chapter 2:Logical Vectors, 1st paragraph, second sentence 
The book reads " This threestate system is sometimes call troolean logic..."
"call" should be "called"

Anonymous 
Sep 03, 2015 

Printed, PDF, ePub, Mobi, , Other Digital Version 
Page 130
last line of code 
The line
vapply(list(), length, numeric(1))
is technically correct, but since length returns an integer, it would have been better to write
vapply(list(), length, integer(1))

Richard Cotton 
Apr 07, 2015 

Printed, PDF, ePub, Mobi, , Other Digital Version 
Page 323
Before the summary 
If this chapter was interesting to you and you want to read more, try "R Packages" by Hadley Wickham.
http://rpkgs.had.co.nz
Note from the Author or Editor: Add the text + reference

Richie Cotton 
Mar 20, 2015 

Printed, PDF, ePub, Mobi, , Other Digital Version 
Page 281
7th paragraph 
For data mining, I recommend Graham Williams "Data
Mining with Rattle and R" (and Max Kuhn's "Applied Predictive Modeling" on the previous page). These are both great books, but my new goto introduction to data mining in R is Brett Lantz's "Machine Learning with R".
https://www.packtpub.com/bigdataandbusinessintelligence/machinelearningr
Read Lantz's book first, then Kuhn's, then Williams'.
Note from the Author or Editor: After the text about Rattle, add the sentence:
"Brett Lantz's _Machine Learning with R_ also provides an excellent introduction to data mining concepts in R."

Richie Cotton 
Mar 20, 2015 

Printed, PDF, ePub, Mobi, , Other Digital Version 
Page 226
Last line of text 
There is an accidental "+" symbol before the word "lattice".

Richie Cotton 
Sep 10, 2014 

Printed, PDF, ePub, Mobi, , Other Digital Version 
Page xii
4th paragraph 
I stated that "Garrett Grolemund’s Data Analysis with R picks up where
this book leaves off".
It seems that after I spoke to Garrett, he took his book in a different direction. It is now called "Handson Programming with R", and it's much more of a beginners book. It is excellently written and definitely worth reading, but the content is easier than in Learning R. Buy it here:
http://shop.oreilly.com/product/0636920028574.do
For more advanced R coding, try Hadley Wickham's "Advanced R". http://advr.had.co.nz/
Note from the Author or Editor: In the second paragraph, change
"If you want a really introductory text on how to program, then Python for Kids by Jason R. Briggs is as good a place to start as any!"
to
"Garrett Grolemund's Handson Programming with R" provides an excellent, slowpaced introduction to using R that assumes no programming experience. Alternatively, if you want a really introductory text on how to program, then Python for Kids by Jason R. Briggs is as good a place to start as any!"
Then in paragraphs four, change
"Garrett Grolemund’s _Data Analysis with R_ picks up where this book leaves off, covering data analysis workflow in more detail."
to
"Hadley Wickham's _Advanced R_ and _R Packages_ pick up where this book leaves off, covering technical topics in more detail."

Richie Cotton 
Aug 26, 2014 

PDF 
Page 28
1st paragraph under RStudio 
www.rstudio.org should be www.rstudio.com
Note from the Author or Editor: Yes, the URL has moved to https://www.rstudio.com

Nico Verwer 
Aug 18, 2014 

Printed, PDF, ePub, Mobi, , Other Digital Version 
Page 59
Code in middle of page 
When creating the nested list, in the line
element_in_inner_list = pi ^ 1:4
there should be parentheses around 1:4. that is, the line should read
element_in_inner_list = pi ^ (1:4)
The corresponding output for that line should be
## [1] 3.141593 9.869604 31.006277 97.409091

Richie Cotton 
Jul 13, 2014 

Printed, PDF, ePub, Mobi, , Other Digital Version 
Page 50
top 
The first liine of code on p50 defines a variable, 'recaman'. Subsequent lines refer to this as 'x', which menas that the code gives incorrect results.
The correct output should be:
recaman < c(0, 1, 3, 6, 2, 7, 13, 20)
nrow(recaman)
## NULL
NROW(recaman)
## [1] 8
ncol(recaman)
## NULL
NCOL(recaman)
## [1] 1
dim(recaman)
## NULL

Richie Cotton 
Jul 12, 2014 

Printed 
Page 123
Table at top 
In first line of table in Exercise 81, the score value should be: 2, 3, 12. (Not 2,3,11).

Paul Junker 
Jun 23, 2014 

PDF 
Page 55
Exercise 42 
The exercise is "Create a 21by21 matrix with the sequence 10 to 0 to 11 (i.e. 11, 10,..., 0, 1,... ,11)."
However the vector given as an example has 23 elements so it would generate a 23by23 matrix. Should the initial vector have been 10 to 0 to 10 (i.e. 10, 9,..., 0, 1.,..., 9, 10) as this would have 21 elements?
Note from the Author or Editor: The text on p55 should be changed to:
"Create a 21by21 matrix with the sequence 10 down to 0 then back up to 10 on the diagonal."
Then the answer to Ex42 on p342 should be changed to:
diag(abs(seq.int(10, 10)))

Stewart Patch 
Mar 17, 2014 

PDF 
Page 53
1st paragraph 
The second sentence states that for multiplication the number of rows of the first matrix must be equal to the number of columns of the second matrix. However the form of multiplication discussed here is elementwise so that for both addition and multiplication the two matrices must have their corresponding dimensions equal.
The rule given for multiplcation in this paragraph is like, but backwards to, the rule for the inner product of matrices which requires the number of columns of the first matrix to be equal to the number of rows of the second matrix.
Note from the Author or Editor: The erratum is correct that the text doesn't properly distinguish elementwise and matrix inner multiplication, and that the rule is backwards.
The text needs quite a lot of editing and rearranging to make sense. In particular, it's clearer if the bit on transposition needs moving after the bit on inner/outer multiplication. It should read:
When performing elementwise arithmetic on two arrays, you need to make sure that both arrays must be the same size (they are “conformable,” in linear algebra terminology). For ex
ample:
(a_differently_sized_matrix < matrix(1:12, nrow = 2))
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 1 3 5 7 9 11
## [2,] 2 4 6 8 10 12
a_matrix + a_differently_sized_matrix
## Error in a_matrix + a_differently_sized_matrix : nonconformable arrays
For inner and outer matrix multiplication, we have the special operators %*% and %o%. In this case, conformable means that the number of columns in the first matrix must be the same as the number of rows in the second matrix. In each case, the dimension names are taken from the first input, if they exist:
<examples for inner and outer product here, unchanged>
<text and example for transposition function here, unchanged>

Stewart Patch 
Mar 16, 2014 

PDF 
Page 50
Preceding section heading: Row, Column, and Dimension Names 
A line has been omitted. The output of "dim(recaman)" which should be "NULL" was left out of the example preceding that heading.
Note from the Author or Editor: The variable in the examples on p50 is sometimes incorrectly named "x" rather than "recaman". The text should read"
recaman < c(0, 1, 3, 6, 2, 7, 13, 20) #See http://oeis.org/A005132
nrow(recaman)
## NULL
NROW(recaman)
## [1] 8
ncol(recaman)
## NULL
NCOL(recaman)
## [1] 1
dim(recaman)
## NULL

Stewart Patch 
Mar 15, 2014 

Other Digital Version 
716
Kindle edition loc: 716 (in chapter 2, paragraph before "Logical Vectors" 
"Notice that NaN and NA are neither finite nor infinite, and NaN is missing but NA is a number:"
should read:
"Notice that NaN and NA are neither finite nor infinite, and NA is missing but NaN is a number:"
Note from the Author or Editor: The sentence is wrong, but not in the way presented in the erratum. It should read
"Notice that NaN and NA are neither finite nor infinite, and NaN is missing but NA is not notanumber[link to footnote]."
[footnote] Not being notanumber is not the same as being a number!

Anonymous 
Jan 17, 2014 

Printed, PDF, ePub, Mobi, , Other Digital Version 
Page 8975
Question 23 
Kindle Edition
Appendix C. Answers to Quizzes
Question 23
At least two of the following:
1. <
2. + = (should be =)
3. + << (should be <<)
4. assign
Note from the Author or Editor: The "+ " is caused by bad formatting of the underlying AsciiDoc markup. The erratum is correct: responses 2 and 3 should be "=" and "<<" respectively.

Anonymous 
Jan 17, 2014 

Printed 
Page 60
1st paragraph, lines 23 
I stated that "Variables can either be atomic or recursive, never both". I failed to mention that there is a (rather obscure) variable type called a name, which contains the name of a variable, that is neither atomic nor recursive.
a < as.name("x")
is.atomic(a)
## FALSE
is.recursive(a)
## FALSE

Richie Cotton 
Oct 15, 2013 
