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.
Meer over Hadley WickhamAdvanced R
Samenvatting
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 optimisingyour code.
By reading this book, you will learn: the difference between an object and its name, and why the distinction is importantthe 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 errorsthe powerful functional programming paradigm, which can replace many for loopsthe three most important OO systems: S3, S4, and R6the tidy eval toolkit for metaprogramming, which allows you to manipulate code and control evaluationeffective debugging techniques that you can deploy, regardless of how your code is runhow 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 themmuch deeper coverage of metaprogramming, including the new tidy evaluation frameworkuse 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 programminguse of color in code chunks and figures.
Specificaties
Inhoudsopgave
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
Mensen die dit boek kochten, kochten ook...
Net verschenen
Rubrieken
- aanbestedingsrecht
- aansprakelijkheids- en verzekeringsrecht
- accountancy
- algemeen juridisch
- arbeidsrecht
- bank- en effectenrecht
- bestuursrecht
- bouwrecht
- burgerlijk recht en procesrecht
- europees-internationaal recht
- fiscaal recht
- gezondheidsrecht
- insolventierecht
- intellectuele eigendom en ict-recht
- management
- mens en maatschappij
- milieu- en omgevingsrecht
- notarieel recht
- ondernemingsrecht
- pensioenrecht
- personen- en familierecht
- sociale zekerheidsrecht
- staatsrecht
- strafrecht en criminologie
- vastgoed- en huurrecht
- vreemdelingenrecht