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.