If you are at least tangentially involved in processing, analyzing, and learning from data, then you are probably familiar with the free statistical programming language and software environment known as R. But R can do a lot more than plot data and perform hypothesis tests–the new book Introduction to Scientific Programming and Simulation Using R, Second Edition, by Owen Jones, Robert Maillardet, and Andrew Robinson, is your guide for using R to tackle problems in computational statistics, simulation, optimization, operations research, and scientific programming.
The book is divided into four parts. Part One covers programming–the basics of writing your own functions and algorithms with R. Part Two covers using the programming concepts from Part One to solve problems like root-finding and numerical integration. Part Three covers the basics of probability, distributions, and discrete and continuous random variables. Part Four covers stochastic modeling and simulation.
Here are the chapter titles:
1: Setting Up
2: R as a Calculating Environment
3: Basic Programming
4: I/O: Input and Output
5: Programming with Functions
6: Sophisticated Data Structures
7: Better Graphics
8: Pointers to Further Programming Techniques
9: Numerical Accuracy and Program Efficiency
10: Root-Finding
11: Numerical Integration
12: Optimisation
13: Systems of Ordinary Differential Equations
14: Probability
15: Random Variables
16: Discrete Random Variables
17: Continuous Random Variables
18: Parameter Estimation
19: Markov Chains
20: Simulation
21: Monte Carlo Integration
22: Variance Reduction
23: Case Studies
24: Student Projects
This book covers a lot of ground, but it does so in enough depth to provide a good grounding in the topics covered. Also, end of chapter exercises provide opportunities for further study and exploration, and an R package is available that contains most of the code and data used in the book.
I really like that this book focuses on teaching you not only how to program, but also how to think algorithmically and numerically to solve problems. R is a very powerful language, but some books just show you how to use R’s built-in functions–functions that are already created and available for you. This book however goes beyond and teaches you how to use R to create your own tools, which allows you to solve much more complex and interesting problems.
This book assumes calculus knowledge, but no prior knowledge of programming or probability is really necessary.
So all in all I really like this book and I think it is a great introduction to scientific programming, simulation, and modeling in R–skills that are extremely valuable in our increasingly digital and data-driven world!
Pricing and Availability: Introduction to Scientific Programming and Simulation Using R, Second Edition, by Owen Jones, Robert Maillardet, and Andrew Robinson.