Synopses & Reviews
R is the world's most popular language for developing statistical software: Archaeologists use it to track the spread of ancient civilizations, drug companies use it to discover which medications are safe and effective, and actuaries use it to assess financial risks and keep economies running smoothly.
The Art of R Programming takes you on a guided tour of software development with R, from basic types and data structures to advanced topics like closures, recursion, and anonymous functions. No statistical knowledge is required, and your programming skills can range from hobbyist to pro.
Along the way, you'll learn about functional and object-oriented programming, running mathematical simulations, and rearranging complex data into simpler, more useful formats. You'll also learn to:
- Create artful graphs to visualize complex data sets and functions
- Write more efficient code using parallel R and vectorization
- Interface R with C/C++ and Python for increased speed or functionality
- Find new R packages for text analysis, image manipulation, and more
- Squash annoying bugs with advanced debugging techniques
Whether you're designing aircraft, forecasting the weather, or you just need to tame your data, The Art of R Programming is your guide to harnessing the power of statistical computing.
R is the world's most popular programming language for statistical computing. Drug developers use it to evaluate clinical trials and determine which medications are safe and effective; archaeologists use it to sift through mounds of artifacts and track the spread of ancient civilizations; and actuaries use it to assess financial risks and keep economies running smoothly. In The Art of R Programming, veteran author Norman Matloff takes readers on a guided tour of this powerful language, from basic object types and data structures to graphing, parallel processing, and much more. Along the way, readers learn about topics including functional and object-oriented programming, low-level code optimization, and interfacing R with C++ and Python. Whether readers are doing academic research, designing aircraft, or forecasting the weather, R is the tool of choice for statistical application development, and The Art of R Programming is the definitive guide to learning R.
About the Author
Norman Matloff, Ph.D., is a Professor of Computer Science at the University of California, Davis. He is the creator of several popular software packages, as well as a number of widely-used Web tutorials on computer topics. He has written articles for the New York Times, the Washington Post, Forbes Magazine, the San Francisco Chronicle, and the Los Angeles Times, among others, and is also the author, with Peter Jay Salzman, of The Art of Debugging (No Starch Press).
Table of Contents
Acknowledgments; Introduction; Why Use R for Your Statistical Work?; Whom Is This Book For?; My Own Background; Chapter 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; Chapter 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(); Chapter 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; Chapter 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; Chapter 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; Chapter 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; Chapter 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; Chapter 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; Chapter 9: Object-Oriented Programming; 9.1 S3 Classes; 9.2 S4 Classes; 9.3 S3 Versus S4; 9.4 Managing Your Objects; Chapter 10: Input/Output; 10.1 Accessing the Keyboard and Monitor; 10.2 Reading and Writing Files; 10.3 Accessing the Internet; Chapter 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; Chapter 12: Graphics; 12.1 Creating Graphs; 12.2 Customizing Graphs; 12.3 Saving Graphs to Files; 12.4 Creating Three-Dimensional Plots; Chapter 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 Debugging Tools; 13.5 Ensuring Consistency in Debugging Simulation Code; 13.6 Syntax and Runtime Errors; 13.7 Running GDB on R Itself; Chapter 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!; Chapter 15: Interfacing R to Other Languages; 15.1 Writing C/C++ Functions to Be Called from R; 15.2 Using R from Python; Chapter 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; Installing R; Downloading R from CRAN; Installing from a Linux Package Manager; Installing from Source; Installing and Using Packages; Package Basics; Loading a Package from Your Hard Drive; Downloading a Package from the Web; Listing the Functions in a Package; Colophon;