Project as an R package: An okay idea

The overarching problem I see with conforming analysis to the package domain, is that it introduces artifacts not of the project domain and that makes the project harder to comprehend

Benefits of a function-based diet (The {drake} post)

The {drake} post I've been threatening to make has landed. All 4000 words of it.

Stop() - breathe - recover()

Over the last couple of months a debugging technique involving an R function called `recover` has transformed my approach dealing with errors in R code. This post is an introduction to a ~20min video I've made where I demonstrate my `recover` approach on two examples.

Hacking R's library paths

If you've been tripped up by R's library paths in the past, or you just enjoy a good hack, you might appreciate this little trick

A workflow for lightweight R dependency management

Recently I proudly shared some code that was only weeks old and had maybe 40 dependencies... what could possibly go wrong right?

Horseman number for

Two #rstats community personalities whom I very much admire have taken my name in vain in relation to for loops. What's up with that?

R anti-pattern: Row-wise modification of data in a loop

The Row-wise modification of data in a loop is a trap for programmers coming to R from other languages.

The Roots of Quotation

In this post I use Lisp as a prop to have the quoting conversation from the start. It's a deep dive that will hopefully arrive at a deep understanding.

R2VR: Shading Meshes in WebVR

In this post I'll contiue to riff on the Uluru mesh, discussing how to colour a WebVR mesh by shading using a raster layer, or applying a texture.

Crushing the Contact Details file with #rstats

It is a universal law that if you volunteer to help organise something, you will at some stage be issued with a flat text file of contact details.

R2VR: Rendering Meshes in WebVR

How to render a 3D mesh of Uluru in WebVR using the A-Frame framework via R.

2018: In Pursuit of Productivity

2018 was probably my busiest year on record. I reflect on some of the productivity tools that got me through.

Solving the Challenge of Tidyeval

Ok here's the vignette... scroll scroll scroll... now I just quo... no wait enquo, no wait sym? Ahhh! equos that has to be it...

How to Survive a Laptop Fire

How bad would it be for your work if your laptop burned in a fire?

R2VR: Meshing Uluru From Polygons and Rasters

In this post I describe using R to make a 3D mesh of Uluru from publicly available spatial data.

Where is the value in package peer review? Reflection #2 on rOpenSci Onboarding

How is a package peer reviewer’s time best spent? When is the best time in a software package’s life cycle to undertake peer review? A user-driven perspective.

A Fully Dockerised HTTPS Ghost Blog

The installation documentation for Ghost is comprehensive, but beyond my skill as a system administrator to complete. Docker to the rescue!

Waterslides vs Ivory Towers: Reflection #1 on rOpenSci Onboarding

Onboarding is a waterslide. rOpenSci have created a rewarding and fun process that generates high quality R packages.

Going Alt-RStats with VSCode

I never want to see another CSV that isn't rainbow!

More articles »



If you see mistakes or want to suggest changes, please create an issue on the source repository.


Text and figures are licensed under Creative Commons Attribution CC BY 4.0. Source code is available at, unless otherwise noted. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".