The world of R has evolved substantially since its early days as a statistical computing language. As the field of data science has rocketed to the forefront of all areas of scientific and industry work, R has become the centerpiece language for doing data science. Through the contributions of a vibrant and highly active developer community, R has evolved to the point where it can be considered a software development language for developing robust, modular, and highly reusable software tools.

We begin by providing a rigorous introduction to the R language, and quickly move on to more advanced aspects like functional programming, object-oriented programming, building R packages, and software maintainence. We also discuss the development of custom visualization tools through packages like ggplot2 and ggmap.

This book is about using R to develop the tools for doing data science. Whether you are on a data science team or working by yourself as part of a community of developers or data scientists, you will find this book useful as a reference for the software development process in R. Throughout, we focus on the aspects of the R language that are relevant to developing code and tools that will be used by others.

Roger D. Peng

Roger D. Peng is an Associate Professor of Biostatistics at the Johns Hopkins Bloomberg School of Public Health. He is also a Co-Founder of the Johns Hopkins Data Science Specialization, which has enrolled over 1.5 million students, and the Simply Statistics blog where he writes about statistics for the general public. Roger can be found on Twitter and GitHub @rdpeng.

Sean Kross

Sean Kross is a software developer in the department of Biostatistics at the Johns Hopkins Bloomberg School of Public Health. Sean's professional interests range between metagenomics, cybersecurity, and human-computer interaction. He is also the lead developer of the swirl, a software package designed to teach programming, statistics, and data science in an authentic programming environment. You can find Sean on Twitter and GitHub at @seankross.

Brooke Anderson

Brooke Anderson is an Assistant Professor at Colorado State University in the Department of Environmental & Radiological Health Sciences, as well as a Faculty Associate in the Department of Statistics. She is also a member of the university’s Partnership of Air Quality, Climate, and Health and is a member of the editorial boards of Epidemiology and Environmental Health Perspectives. Previously, she completed a postdoctoral appointment in Biostatistics at Johns Hopkins Bloomberg School of Public and a PhD in Engineering at Yale University. Her research focuses on the health risks associated with climate-related exposures, including heat waves and air pollution, for which she has conducted several national-level studies. As part of her research, she has also published a number of open source R software packages to facilitate environmental epidemiologic research.