Data science aims to extract relevant information from a large dataset for the purpose of decision making. Data science algorithms rely on several mathematical topics. Computationally, these algorithms can be implemented using several programming languages, including Python, JavaScript, and Scala. R was initially built for statistical computing and is now a major language for data science given the number of available R data exploration and analysis libraries.

*Mathematical foundations of data science using R* aims to provide everything needed to implement data science algorithms in one single manual. Its chapters cover both the mathematical background along with the R programming language to implement the algorithms.

The introduction lays down the relationships between data science and mathematical subjects. It also explains the authors’ motivation for writing the book: “a common problem among many students is their lack of basic knowledge and understanding of the mathematical foundations underpinning methods used in data science.”

Part 1 consists of chapters 2 to 6. R is a multiparadigm programming language. The paradigms it implements are briefly defined in chapter 2: imperative, functional, object-oriented, and logic programming. Chapter 3 details the installation of R on the major platforms, including Linux, MacOS, and Windows. Chapter 4 follows by showing how to install the main R packages, including CRAN, Bioconductor, and GitHub. Chapter 5 is a tutorial on the actual R language. It covers the main concepts of the language, such as if-clause, for-loops, while-loops, data structures, writing and reading data, and so on. R comes with an extensive set of predefined packages for direct use by the programmers. It is still possible to create user-defined packages. The process is detailed in chapter 6.

Part 2 (chapters 7 to 9) covers graphics in R. Basic plotting functions and advanced plotting functions are covered in chapters 7 and 8, respectively. Network analysis allows users to visualize relationships between the nodes of a given network. For example, in a social network, nodes can represent users. Chapter 9 explains how to analyze networks using R, specifically using the igraph and NetBioV packages.

Part 3 (chapters 10 to 18) is dedicated to the foundations of mathematics for data science. It is a detailed tutorial on several topics in mathematics: computability and complexity, linear algebra, differential equations, probability theory, and optimization. Each chapter contains a concise code example mapping the mathematical concepts into R. Most chapters in this part conclude with a set of exercises to practice the covered mathematical concepts.

As the title suggests, *Mathematical foundations of data science using R* puts a strong focus on mathematics for data science, supported by the use of R to implement the mathematical concepts. The book is well written, well illustrated, and extremely well structured. The chapters can be studied in order if the reader is a complete beginner. For others, it is possible to focus on the chapters of interest. For example, for readers already familiar with R, it is possible to skip to the refresher chapters on mathematics. On the other hand, mathematicians can focus on the first chapters covering the R language.

I highly recommend the book to anyone who needs a complete guide to data science using R. it covers both the mathematical foundations and R programming language concepts.