Copyright
Brief Contents
Contents in Detail
Acknowledgments
Introduction
Why Use R for Your Statistical Work?
Whom Is This Book For?
My Own Background
1: Getting Started
1.1 How to Run R
1.2 A First R Session
1.3 Introduction to Functions
1.4 Preview of Some Important R Data Structures
1.5 Extended Example: Regression Analysis of Exam Grades
1.6 Startup and Shutdown
1.7 Getting Help
2: Vectors
2.1 Scalars, Vectors, Arrays, and Matrices
2.2 Declarations
2.3 Recycling
2.4 Common Vector Operations
2.5 Using all() and any()
2.6 Vectorized Operations
2.7 NA and NULL Values
2.8 Filtering
2.9 A Vectorized if-then-else: The ifelse() Function
2.10 Testing Vector Equality
2.11 Vector Element Names
2.12 More on c()
3: Matrices and Arrays
3.1 Creating Matrices
3.2 General Matrix Operations
3.3 Applying Functions to Matrix Rows and Columns
3.4 Adding and Deleting Matrix Rows and Columns
3.5 More on the Vector/Matrix Distinction
3.6 Avoiding Unintended Dimension Reduction
3.7 Naming Matrix Rows and Columns
3.8 Higher-Dimensional Arrays
4: Lists
4.1 Creating Lists
4.2 General List Operations
4.3 Accessing List Components and Values
4.4 Applying Functions to Lists
4.5 Recursive Lists
5: Data Frames
5.1 Creating Data Frames
5.2 Other Matrix-Like Operations
5.3 Merging Data Frames
5.4 Applying Functions to Data Frames
6: Factors and Tables
6.1 Factors and Levels
6.2 Common Functions Used with Factors
6.3 Working with Tables
6.4 Other Factor- and Table-Related Functions
7: R Programming Structures
7.1 Control Statements
7.2 Arithmetic and Boolean Operators and Values
7.3 Default Values for Arguments
7.4 Return Values
7.5 Functions Are Objects
7.6 Environment and Scope Issues
7.7 No Pointers in R
7.8 Writing Upstairs
7.9 Recursion
7.10 Replacement Functions
7.11 Tools for Composing Function Code
7.12 Writing Your Own Binary Operations
7.13 Anonymous Functions
8: Doing Math and Simulations in R
8.1 Math Functions
8.2 Functions for Statistical Distributions
8.3 Sorting
8.4 Linear Algebra Operations on Vectors and Matrices
8.5 Set Operations
8.6 Simulation Programming in R
9: Object-Oriented Programming
9.1 S3 Classes
9.2 S4 Classes
9.3 S3 Versus S4
9.4 Managing Your Objects
10: Input/Output
10.1 Accessing the Keyboard and Monitor
10.2 Reading and Writing Files
10.3 Accessing the Internet
11: String Manipulation
11.1 An Overview of String-Manipulation Functions
11.2 Regular Expressions
11.3 Use of String Utilities in the edtdbg Debugging Tool
12: Graphics
12.1 Creating Graphs
12.2 Customizing Graphs
12.3 Saving Graphs to Files
12.4 Creating Three-Dimensional Plots
13: Debugging
13.1 Fundamental Principles of Debugging
13.2 Why Use a Debugging Tool?
13.3 Using R Debugging Facilities
13.4 Moving Up in the World: More Convenient DebuggingTools
13.5 Ensuring Consistency in Debugging Simulation Code
13.6 Syntax and Runtime Errors
13.7 Running GDB on R Itself
14: Performance Enhancement: Speed and Memory
14.1 Writing Fast R Code
14.2 The Dreaded for Loop
14.3 Functional Programming and Memory Issues
14.4 Using Rprof() to Find Slow Spots in Your Code
14.5 Byte Code Compilation
14.6 Oh No, the Data Doesn’t Fit into Memory!
15: Interfacing R to Other Languages
15.1 Writing C/C++ Functions to Be Called from R
15.2 Using R from Python
16: Parallel R
16.1 The Mutual Outlinks Problem
16.2 Introducing the snow Package
16.3 Resorting to C
16.4 General Performance Considerations
16.5 Debugging Parallel R Code
Appendix A: Installing R
A.1 Downloading R from CRAN
A.2 Installing from a Linux Package Manager
A.3 Installing from Source
Appendix B: Installing and Using Packages
B.1 Package Basics
B.2 Loading a Package from Your Hard Drive
B.3 Downloading a Package from the Web
B.4 Listing the Functions in a Package
Index
UPDATES