services

R Package Development

Make your code more robust, reusable, efficient and portable through an R package.

What if your code is something you or others might want to reuse in other projects? Despite being historically underappreciated in academia, software is increasingly gaining recognition as an impactful and important research output. Whether as a dependency for other projects or something that has applicability for a wider community of users, bundling up your code into an R package is the best way to make your code more reusable, accessible and robust.

What I offer

  • Code modularisation, generalisation and function development.
  • Code testing and validation.
  • Runtime checks, assertions and exception handling with actionable, human friendly messages.
  • Documentation (functions, long form vignettes, websites)
  • Version control and transparent code sharing (publically or privately) through online repositories
  • Continuous integration (for testing or automated documentation builds).

Why bother?

Benefits of R package structure

Creating a package out of your code allows us to leverage R software development tools including tools for testing, documenting, distributing, maintaining and installing functionality. Introducing testing builds confidence in your code and, in turn, in the validity of results generated with it. It can also contribute to reproducibility through formal code versioning. Overall, it makes it easier for code to be deployed and used by others, and represents a citable research output you can get formal credit for.

Why me?

I can help in all aspects of package development, whether building functionality from scratch to your specification or refactoring your code into an R package. I’ve built a number of both public and custom private packages for clients as well as built up experience through handling R package software reviews for rOpenSci. Have a look at the work portfolio page for more examples of packages I’ve built or contributes to. I generally to best practice laid out in the rOpenSci Developers Guide which you can review to get an idea of the standard you can expect from packages I build.