Writing R Packages

In this course, you will learn how to write your own R packages. We will start by demonstrating the basic steps of developing a new R package. You will then have time to practice adding new features and getting packages ready for publishing on GitHub and CRAN.

Learning Objectives

By the end of the workshop participants should:

  • Understand the anatomy of an R package
  • Know how to start writing and documenting a new R package
  • Know how to add and test/debug new features to an existing R package
  • Know how to publish R packages on GitHub and CRAN


This is an introduction to writing your own R packages, not an introduction to R programming! You should already be comfortable with installing and using packages from CRAN, reading help files, writing conditional expressions (if/else, for loops, etc.), writing functions, and doing other common programming tasks with R. A familiarity with ggplot2 and GitHub would also be helpful. If you have attended one of the 2-day R workshops at UCSF or ar familiar with most of the content here, you should be ready to go. Contact karla.lindquist@ucsf.edu for questions.


Please bring a laptop that is running a recent distribution of Linux, Mac OS X 10.11 (El Capitan) or higher, or Windows XP or higher. You must also have up-to-date versions of R (3.6) and RStudio (1.2) installed on your laptop in advance of the workshop:

Please also sign up for a GitHub account if you do not already have one. It's free! Join here.


Steve Mack, PhD is a Scientist at the Children's Hospital Oakland Research Institute, and Adjunct Assistant Professor at UCSF.
Karla Lindquist, PhD is the Scientific Lead for the Data Science Initiative in the UCSF Library.

Thursday, September 12, 2019 at 10:00am to 1:00pm

Mission Hall, MH 2100
550 16th St, San Francisco, CA 94158

Event Type

Class/Info Session


Students, Postdocs, Staff, Faculty


Mission Bay


programming, Data Science Initiative, r, R programming, R Packages





UCSF Library
Contact Info



Event Registration Required

This event requires registration.