Description
Taylor & Francis Extending R by John M. Chambers
Up-to-Date Guidance from One of the Foremost Members of the R Core Team_x000D__x000D__x000D__x000D__x000D__x000D_Written by John M. Chambers, the leading developer of the original S software, Extending R covers key concepts and techniques in R to support analysis and research projects. It presents the core ideas of R, provides programming guidance for projects of all scales, and introduces new, valuable techniques that extend R._x000D__x000D__x000D__x000D__x000D__x000D_The book first describes the fundamental characteristics and background of R, giving readers a foundation for the remainder of the text. It next discusses topics relevant to programming with R, including the apparatus that supports extensions. The book then extends R's data structures through object-oriented programming, which is the key technique for coping with complexity. The book also incorporates a new structure for interfaces applicable to a variety of languages._x000D__x000D__x000D__x000D__x000D__x000D_A reflection of what R is today, this guide explains how to design and organize extensions to R by correctly using objects, functions, and interfaces. It enables current and future users to add their own contributions and packages to R._x000D__x000D__x000D__x000D__x000D__x000D_A 2017 Choice Outstanding Academic Title_x000D_ _x000D_
Understanding R _x000D_
Objects, Functions and Interfaces _x000D_
Three Principles _x000D_
Everything is an Object _x000D_
Everything is a Function Call _x000D_
Interfaces are Part of R _x000D_
Functional Programming _x000D_
Object-Oriented Programming _x000D_
_x000D_
_x000D_
_x000D_
_x000D_
_x000D_
Evolution _x000D_
Computational Methods _x000D_
The First Version of S_x000D_
Functional, Object-Based S _x000D_
R Arrives and Evolves _x000D_
Evolution of Object-Oriented Programming _x000D_
Functional OOP in S and R _x000D_
S4 and R _x000D_
_x000D_
_x000D_
_x000D_
_x000D_
_x000D_
R in Operation _x000D_
Objects and References _x000D_
Function Calls _x000D_
Interfaces _x000D_
The R Evaluator _x000D_
_x000D_
_x000D_
_x000D_
_x000D_
_x000D_
Programming with R _x000D_
Small, Medium and Large _x000D_
_x000D_
_x000D_
_x000D_
_x000D_
_x000D_
Functions _x000D_
Functional Programming and R _x000D_
Assignments and Replacements _x000D_
Computing on the Language _x000D_
Interfaces and Primitives _x000D_
Getting it to Run Faster _x000D_
_x000D_
_x000D_
_x000D_
_x000D_
_x000D_
Objects _x000D_
Types and Attributes _x000D_
Object Management _x000D_
Reference Objects; Environments _x000D_
_x000D_
_x000D_
_x000D_
_x000D_
_x000D_
Packages _x000D_
Understanding Packages _x000D_
Installing a Package _x000D_
Loading and Attaching a Package _x000D_
Sharing your Package _x000D_
_x000D_
_x000D_
_x000D_
_x000D_
_x000D_
In the Large _x000D_
_x000D_
_x000D_
_x000D_
_x000D_
_x000D_
Object-Oriented Programming _x000D_
Classes and Methods in R _x000D_
OOP Software in R _x000D_
Functional and Encapsulated OOP _x000D_
Creating Classes in R _x000D_
Creating Methods in R _x000D_
Example: Classes for Models _x000D_
_x000D_
_x000D_
_x000D_
_x000D_
_x000D_
Functional OOP in R _x000D_
Functional OOP in Extending R _x000D_
Defining Classes _x000D_
Defining Methods and Generic Functions _x000D_
Classes and Methods in an R Package _x000D_
Functional Classes in Detail _x000D_
Generic Functions in Detail _x000D_
Functional Methods in Detail _x000D_
S3 Methods and Classes _x000D_
_x000D_
_x000D_
_x000D_
_x000D_
_x000D_
Encapsulated OOP in R _x000D_
The Structure of Encapsulated OOP _x000D_
Using Encapsulated OOP _x000D_
Defining Reference Classes _x000D_
Fields in Reference Classes _x000D_
Methods in Reference Classes _x000D_
Functional Methods for Reference Classes _x000D_
_x000D_
_x000D_
_x000D_
_x000D_
_x000D_
Interfaces _x000D_
Understanding Interfaces _x000D_
Introduction _x000D_
Available Interfaces _x000D_
Subroutines and Evaluators _x000D_
Server Language Software _x000D_
Server Language Computations _x000D_
Server Language Object References _x000D_
Data Conversion _x000D_
Interfaces for Performance _x000D_
_x000D_
_x000D_
_x000D_
_x000D_
_x000D_
The XR Structure for Interfaces _x000D_
Introduction _x000D_
The XR Interface Structure _x000D_
Evaluator Objects and Methods _x000D_
Application Programming _x000D_
Specializing to the Server Language _x000D_
Proxy Objects _x000D_
Proxy Functions and Classes _x000D_
Data Conversion _x000D_
_x000D_
_x000D_
_x000D_
_x000D_
_x000D_
An Interface to Python _x000D_
R and Python _x000D_
Python Computations _x000D_
Python Programming _x000D_
Python Functions _x000D_
Python Classes _x000D_
Data Conversion _x000D_
_x000D_
_x000D_
_x000D_
_x000D_
_x000D_
An Interface to Julia _x000D_
R and Julia _x000D_
Julia Computations _x000D_
Julia Programming _x000D_
Julia Functions _x000D_
Julia Types _x000D_
Data Conversion _x000D_
_x000D_
_x000D_
_x000D_
_x000D_
_x000D_
Subroutine Interfaces _x000D_
R, Subroutines and C++ _x000D_
C++ Interface Programming _x000D_
C++ Functions _x000D_
C++ Classes _x000D_
Data Conversion _x000D_
_x000D_
_x000D_
_x000D_
_x000D_
_x000D_
Bibliography _x000D_
_x000D_
_x000D_
Index_x000D_