The time when R was an obscure language that very few people knew how to use for statistics has long gone. Now, R is a fully fledged programming language, with a rapidly growing community of users and developers across a range of fields, including science and engineering disciplines. To encourage even more practising scientists and engineers to use R in their work, the present book, a pragmatic guide to R's abilities in the realm of numerical analysis, has been written. Although not explicitly done so by the book's author, for the purpose of this review it will be convenient to divide the book into three parts: I, ‘R in a nutshell’, II, ‘R for numerical analysis’, and III, ‘R for data analysis’, as detailed in the next three paragraphs.

Chapter 1 is a six-page introduction to R, telling a reader how to find help from various sources, how to augment R with packages and about books and various on-line resources on learning R. Chapter 2 discusses basic calculations with R, including operators and functions, complex numbers, rounding, variable assignment, vectors and matrices. Chapter 3 is devoted to base graphics in R. Examples are given for several common types of plot. It is shown how to customize and superimpose plots, to modify plots’ axes, to add mathematical expressions, to position multiple plots on a page and to create contour and three-dimensional plots. The first four sections of Chapter 4 review the basics of R programming, including conditional execution, loops, user-defined functions and debugging.

The remainder of Chapter 4 reviews standard built-in mathematical functions, as well as special and polynomial functions that are available through dedicated R packages. Chapter 5 discusses several topics in solving systems of algebraic equations, including methods of finding zeros of a polynomial and other functions, and solving systems of non-linear equations. Various types of matrices and matrix decompositions are also discussed. Chapter 6 reviews the tools that R has for numerical integration and differentiation. Chapter 7 considers all three optimization functions that are available in the base installation of R, as well as multiple packages expanding the power of these functions. Chapter 8 deals with packages for solving ordinary differential and related equations. Chapter 9 is built around three packages that together contain most of the tools that are required to solve most commonly encountered partial differential equations.

Chapters 10 and 11 briefly survey some of the major topics in data analysis, with an intention to give a useful introduction to R's enormous statistical capabilities. The topics include summarizing a single data set, statistical comparison of two samples, χ2-tests for goodness-of-fit correlation, principal component and cluster analyses, linear and non-linear least squares, polynomial and spline interpolations, Fourier and power spectrum analyses for determining frequencies of the underlying signal, and applying common digital filters to extract a sinusoidal signal.

Curiously, in the last chapter of the book, the author seems to use the phrases fitting data to or with models and fitting models to data interchangeably, whereas many statisticians would consider the latter as the only correct option. Aside from this minor point, the book is well organized, clearly writtten and has a large amount of useful R code. It does a good job of answering the question of how to use R to perform numerical analyses of interest to scientists and engineers and, as such, can be recommended to the intended audience.

This article is published and distributed under the terms of the Oxford University Press, Standard Journals Publication Model (https://academic.oup.com/journals/pages/open_access/funder_policies/chorus/standard_publication_model)