Mini Course: R Package Development

Mini Course: R Package Development aims to provide you with the basic tools and knowledge to write your own high-quality R packages.

Previous courses have taught basic and intermediate-level R programming. During these courses you probably used multiple R packages for a variety of purposes. In this course, we aim to show you how to develop your own R packages. By doing so, you can take your R programming skills to the next level, becoming not just a user, but also a developer.

The course will cover the basic technical aspects of how to create a basic R package, as well as the novelty, documentation and good practices requirements that must be fulfilled in order to publish a package in the main R repositories (CRAN and BioConductor). We will also cover some useful packages and advanced features of R that are commonly used when developing packages. Finally, we will also have a look at how you can increase the visibility of your packages, as well as some specific examples of R packages to demonstrate how the strong ecosystem of R packages greatly increases the scope of application of the language.

Target audience

This course is suitable for people who:

  • Have some previous exposure to R (like Skill Pill: R)
  • Want to become active contributors to the R community through package development
  • or Want to learn some advanced features of R


The teachers will be Rafael Ayala (Postdoctoral Scholar in Wolf Unit), Jamie Kass (Research Fellow in Economo Unit) and Charles Plessy (Group Leader in Luscombe Unit).


The Mini Course will take part in three sessions:

Date Time Topic Teacher
Monday, September 27 10AM - 12PM
  • Introduction to R and R packages
  • Mainstream repositories
  • Features and structure of an R package
  • CRAN requirements
  • How to start an R package in Rstudio
Thursday, September 30 10AM - 12PM
  • BioConductor requirements
  • BioConductor development and release branches
  • Versioning
  • GitHub version control and GitHub actions
  • Package metadata
Monday, October 4 10AM - 12PM
  • Object-oriented programming in R (Rafa)
  • Accessing web-resources from R (Rafa)
  • Using devtools for package development
  • Writing documentation with roxygen
  • Using testthat to make and implement unit tests
  • Adding a graphical user interface to a package with Shiny
  • Examples of interesting packages

The material of the course can be found here.

The sessions were recorded here: session 1, session 2, session 3.

More information

  • Location: B701, Computer Lab, Lab 3.
  • What to bring: your laptop with R Studio already installed on it and a GitHub account:
  • Zoom link: if you prefer joining remotely, or if B701 exceeds 50% capacity, you can join using this link. Unfortunately, we won't be able to provide much help with the hands-on part via Zoom. 
  • Video Recording: this course might be recorded and uploaded online, only the teacher will be recorded. Contact Jeremie Gillet if you have reservations about this.
  • Drinks: There will be free coffee and tea, bring your cup!

If you are interested in the course but cannot participate to this particular event, let us know and we will contact you for any later occurrence of this course.

Thank you very much for your interest.

1 Start 2 Complete
How comfortable are you with R? Have you ever published a package?
Why are you interested in this topic? Is there a particular thing you would like to learn?