My former professor, Norm Matloff, wrote “The Art of R Programming” and NoStarch Press was kind enough to send me a review copy.
The Art of R Programming is a straight forward explanation of R for programmers who are reasonably familiar with programming in another language. Matloff makes no assumptions of expertise in C or algorithms and his explanations are succinct and easy to follow.
If you’re aren’t familiar with R, it is a statistical programming language, with some similarities to Matlab.
The big advantages of R are (1) it’s high level, (2) reasonably easy to read, (3) functional in nature, (4) simple syntax. If you’re familiar with Python, it has a similar feel. Compared to complex languages such as C++, Java, etc, R is a breadth of fresh air due to the lightness of its syntax. That said as a programming language Python is nicer. R has a few annoyances (for me at least) that make it less pleasant to write in than Python.
A couple of those are:
- Non-standard assignment operator e.g. to assign 5 to x in R we use “x <- 5" instead of the normal "x = 5" used in other languages. This is annoying because a significant amount of programming is doing assignments and a two character assignment operator is twice as much typing. Contrast this with Python which uses the plain "x = 5".
- Vector creation using “c(1,2,3,4)”. Vectors in R are similar to lists in Python, it would be more natural to add a little syntactic sugar and use “[1,2,3,4]” for vector creation i.e. the same syntax as Python and many other languages.
The real reason to use R are its statistical libraries, it’s very widely used for statistics and is the most pleasant environment to work in.
The areas Matloff covers are:
|1 Why R?||2 Getting Started||3 Vectors|
|4 Matrices||5 Lists||6 Data Frames|
|7 Factors and Tables||8 R Programming Structures||9 R Functions|
|10 Doing Math in R||11 Input/Output||12 Object-Oriented Programming|
|13 Graphics||14 Debugging||15 Writing Fast R Code|
|16 Interfacing R to Other Languages||17 Parallel R||18 String Manipulation|
|19 Installation: R Base, New Packages||20 User Interfaces||21 To Learn More|
Much of the material is available online in tutorials such as John Cook’s, R Language For Programmers. The real gems are the chapters “Writing Fast R Code”, “Interfacing R to Other Languages”, and “Parallel R”. These chapters have great information that is not easily discoverable otherwise.
“The Art of R Programming” is a fun read, albeit somewhat specialized. If you need to do statistical work as a programmer I highly recommend buying it and spending an afternoon browsing it.