Advanced R helps you understand how R works at a fundamental level. It is designed for R programmers who want to deepen their understanding of the language, and programmers experienced in other languages who want to understand what makes R different and special.
This book will teach you the foundations of R; three fundamental programming paradigms (functional, object-oriented, and metaprogramming); and powerful techniques for debugging and optimising
your code.
By reading this book, you will learn:
- The difference between an object and its name, and why the distinction is important
- The important vector data structures, how they fit together, and how you can pull them apart using subsetting
- The fine details of functions and environments
- The condition system, which powers messages, warnings, and errors
- The powerful functional programming paradigm, which can replace many for loops
- The three most important OO systems: S3, S4, and R6
- The tidy eval toolkit for metaprogramming, which allows you to manipulate code and control evaluation
- Effective debugging techniques that you can deploy, regardless of how your code is run
- How to find and remove performance bottlenecks
The second edition is a comprehensive update:
- New foundational chapters: "Names and values," "Control flow," and "Conditions"
- comprehensive coverage of object oriented programming with chapters on S3, S4, R6, and how to choose between them
- Much deeper coverage of metaprogramming, including the new tidy evaluation framework
- use of new package like rlang (http://rlang.r-lib.org), which provides a clean interface to low-level operations, and purr (http://purrr.tidyverse.org/) for functional programming
- Use of color in code chunks and figures
Hadley Wickham is Chief Scientist at RStudio, an Adjunct Professor at Stanford University and the University of Auckland, and a member of the R Foundation. He is the lead developer of the tidyverse, a collection of R packages, including ggplot2 and dplyr, designed to support data science. He is also the author of R for Data Science (with Garrett Grolemund), R Packages, and ggplot2: Elegant Graphics for Data Analysis.