Résumé
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 .
-
Introduction
Why R?
Who should read this book
What you will get out of this book
What you will not learn
Meta-techniques
Recommended reading
Getting help
Acknowledgments
Conventions
Colophon
I Foundations
Introduction
Names and values
Introduction
Binding basics
Copy-on-modify
Object size
Modify-in-place
Unbinding and the garbage collector
Answers
Vectors
Introduction
Atomic vectors
Attributes
S atomic vectors
Lists
Data frames and tibbles
NULL
Answers
Subsetting
Introduction
Selecting multiple elements
Selecting a single element
Subsetting and assignment
Applications
Answers
Control flow
Introduction
Choices
Loops
Answers
Functions
Introduction
Function fundamentals
Function composition
Lexical scoping
Lazy evaluation
(dot-dot-dot)
Exiting a function
Function forms
Quiz answers
Environments
Introduction
Environment basics
Recursing over environments
Special environments
The call stack
As data structures
Quiz answers
Conditions
Introduction
Signalling conditions
Ignoring conditions
Handling conditions
Custom conditions
Applications
Quiz answers
II Functional programming
Introduction
Functionals
Introduction
My first functional: map()
Purrr style
Map variants
Reduce
Predicate functionals
Base functionals
Function factories
Introduction
Factory fundamentals
Graphical factories
Statistical factories
Function factories + functionals
Function operators
Introduction
Existing function operators
Case study: creating your own function operators
III Object oriented programming
Introduction
Base types
Introduction
Base vs OO objects
Base types
S3
Introduction
Basics
Classes
Generics and methods
Object styles
Inheritance
Dispatch details
R6
Introduction
Classes and methods
Controlling access
Reference semantics
Why R?
S4
Introduction
Basics
Classes
Generics and methods
Method dispatch
S and S
Trade-offs
Introduction
S vs S
R vs S
IV Metaprogramming
Introduction
Big picture
Introduction
Code is data
Code is a tree
Code can generate code
Evaluation runs code
Customising evaluation with functions
Customising evaluation with data
Quosures
Expressions
Introduction
Abstract syntax trees
Expressions
Parsing and grammar
Walking the AST with recursive functions
Specialised data structures
Quasiquotation
Introduction
Motivation
Quoting
Unquoting
Non-quoting
Dot-dot-dot ()
Case studies
History
Evaluation
Introduction
Evaluation basics
Quosures
Data masks
Using tidy evaluation
Base evaluation
Translating R code
Introduction
HTML
LaTeX
V Techniques
Introduction
Debugging
Introduction
Overall approach
Locate the error
The interactive debugger
Non-interactive debugging
Non-error failures
Measuring performance
Introduction
Profiling
Microbenchmarking
Improving performance
Introduction
Code organisation
Check for existing solutions
Do as little as possible
Vectorise
Avoid copies
Case study: t-test
Other techniques
Rewriting R code in C++
Introduction
Getting started with C++
Other classes
Missing values
The STL
Case studies
Using Rcpp in a package
Learning more
Acknowledgments
Caractéristiques techniques
PAPIER | |
Éditeur(s) | Taylor&francis |
Auteur(s) | Hadley Wickham |
Parution | 29/05/2019 |
Nb. de pages | 588 |
EAN13 | 9780815384571 |
Avantages Eyrolles.com
Consultez aussi
- Les meilleures ventes en Graphisme & Photo
- Les meilleures ventes en Informatique
- Les meilleures ventes en Construction
- Les meilleures ventes en Entreprise & Droit
- Les meilleures ventes en Sciences
- Les meilleures ventes en Littérature
- Les meilleures ventes en Arts & Loisirs
- Les meilleures ventes en Vie pratique
- Les meilleures ventes en Voyage et Tourisme
- Les meilleures ventes en BD et Jeunesse