I enjoy writing in my spare time and try to write about an hour per day. Working in academia I, of course, spend a lot of time writing at work, but writing books relax me. Of course, I mostly stick to what I know, so my books are related to work and motivated by teaching or research. So far, that has been topics on R programming and data science. If you buy my books as ebooks on Amazon, you should be aware that they are usually technical and contain graphics and code examples that will not display well on a Kindle device. I recommend that you use the Kindle app instead (click the icon on the left; if you download the app from there I get a little bonus from Amazon, so you will be supporting my writing that way).

If you want to get informed about new books I am writing, please sign up to my mailing list.


Beginning Data Science in R: Data Analysis, Visualization, and Modelling for the Data Scientist

Discover best practices for data analysis and software development in R and start on the path to becoming a fully-fledged data scientist. This book teaches you techniques for both data manipulation and visualization and shows you the best way for developing new software packages for R.

Beginning Data Science in R details how data science is a combination of statistics, computational science, and machine learning. You’ll see how to efficiently structure and mine data to extract useful patterns and build mathematical models. This requires computational methods and programming, and R is an ideal programming language for this.

This book is based on a number of lecture notes for classes the author has taught on data science and statistical programming using the R programming language. Modern data analysis requires computational skills and usually a minimum of programming.

What You Will Learn

  • Perform data science and analytics using statistics and the R programming language
  • Visualize and explore data, including working with large data sets found in big data
  • Build an R package
  • Test and check your code
  • Practice version control
  • Profile and optimize your code

Who This Book Is For

Those with some data science or analytics background, but not necessarily experience with the R programming language.

Available at Apress and Amazon.

The Beginner’s Guides

These books are short introductions to various technical topics, aimed at complete beginners. Think of them as tutorials that, in a couple of hours, should get you up to speed on a technology.

The Beginner’s Guide to GitHub

You have heard about git and GitHub and wanted to know what the buzz is about. That is what I am here to tell you. Or, at least, I am here to give you a quick overview of what you can do with git and GitHub. I won’t be able, in the space here, to give you an exhaustive list of features—in all honesty, I don’t know enough myself to be able to claim expertise with these tools. I am only a frequent user, but I can get you started and give you some pointers for where to learn more. That is what this booklet is for.

The book is available as an ebook on Amazon.

The Beginner’s Guide to Markdown and Pandoc

Markdown is a markup language; the name is a pun. Markup languages are used to annotate text formatting information, typically with a stronger focus on semantic information than direct formatting as you would do with WYSIWYG (what you see is what you get) formatting. With markup languages, you might annotate your text with information about where chapters and sections start, but not how chapter and heading captions should be formatted. Doing this decouples the structure of a text from how it is visualised and makes it easier for you to produce different kinds of output. The same text can easily be formatted as HTML, PDF, or Word documents, with various visual styles, by tools that understand the markup annotations.

Pandoc is a tool for translating between different markup languages, such as LaTeX, HTML, and Markdown. I use it for formatting the books I write. This booklet describes how. I will tell you how to write manuscripts in Markdown and translate them with Pandoc into different output formats. I will not describe all the functionality that Pandoc provides, only how it can be used to write papers and books in Markdown. If that is something you are interested in, The Beginner’s Guide to Markdown and Pandoc will get you started.

Available on Amazon

Advanced Statistical Programming in R

This is a series of shorter books covering more specialised topics. The following books are currently available, but more are planned.

Functional Programming in R

Master functions and discover how to write functional programs in R. In this concise book, you’ll make your functions pure by avoiding side-effects; you’ll write functions that manipulate other functions, and you’ll construct complex functions using simpler functions as building blocks.

In Functional Programming in R, you’ll see how we can replace loops, which can have side-effects, with recursive functions that can more easily avoid them. Also, the book covers why you shouldn’t use recursion when loops are more efficient and how you can get the best of both worlds.

Functional programming is a style of programming, like object-oriented programming, but one that focuses on data transformations and calculations rather than objects and state. Where in object-oriented programming you model your programs by describing which states an object can be in and how methods will reveal or modify that state, in functional programming you model programs by describing how functions translate input data to output data. Functions themselves are considered to be data you can manipulate and much of the strength of functional programming comes from manipulating functions; that is, building more complex functions by combining simpler functions.

What You’ll Learn

  • Write functions in R including infix operators and replacement functions
  • Create higher order functions
  • Pass functions to other functions and start using functions as data you can manipulate
  • Use Filer, Map and Reduce functions to express the intent behind code clearly and safely
  • Build new functions from existing functions without necessarily writing any new functions, using point-free programming
  • Create functions that carry data along with them

Who This Book Is For

Those with at least some experience with programming in R.

This book is no longer available for purchase as I have sold it to Apress. It will be released later in 2017 in a new version.

Available at Apress or Amazon.

Metaprogramming in R

Learn how to manipulate functions and expressions to modify how the R language interprets itself. This book is an introduction to metaprogramming in the R language, so you will write programs to manipulate other programs. Metaprogramming in R shows you how to treat code as data that you can generate, analyze, or modify.

R is a very high-level language where all operations are functions and all functions are data that can be manipulated. This book shows you how to leverage R’s natural flexibility in how function calls and expressions are evaluated, to create small domain-specific languages to extend R within the R language itself.

What You’ll Learn
Find out about the anatomy of a function in R
Look inside a function call
Work with R expressions and environments
Manipulate expressions in R
Use substitutions

Who This Book Is For

Those with at least some experience with R and certainly for those with experience in other programming languages.

Available for preorder at Amazon.

Object oriented programming in R

Learn how to write object-oriented programs in R and how to construct classes and class hierarchies in the three object-oriented systems available in R. This book gives an introduction to object-oriented programming in the R programming language and shows you how to use and apply R in an object-oriented manner. You will then be able to use this powerful programming style in your own statistical programming projects to write flexible and extendable software.

After reading Advanced Object-Oriented Programming in R, you’ll come away with a practical project that you can reuse in your own analytics coding endeavors. You’ll then be able to visualize your data as objects that have state and then manipulate those objects with polymorphic or generic methods. Your projects will benefit from the high degree of flexibility provided by polymorphism, where the choice of concrete method to execute depends on the type of data being manipulated.

What You’ll Learn
Define and use classes and generic functions using R
Work with the R class hierarchies
Benefit from implementation reuse
Handle operator overloading
Apply the S4 and R6 classes

Who This Book Is For

Experienced programmers and for those with at least some prior experience with R programming language.

Pre-order at Amazon

Leave a Reply