My Organization's First R Package
rstudio::conf 2020
by Rich Iannone and Malcolm Barrett
Overview
If your organization uses R, there are clear benefits to having an organizational R package. Such benefits can be realized whether there is only a single R user or dozens of them. An R package focused on the particular needs of an organization can open up a world of possibilities including easier data access, shared functions for data transformation and analysis, and a common look and feel for reporting.
Creating your first organizational R package can be daunting however. You may wonder: “what functions should be included?”, “how would colleagues install the package (and updates)?”, “what could be done to ensure there is sufficient quality control?”. This workshop will demonstrate how to get an organizational R package off the ground. We’ll take a look at planning the package and understanding the requirements of the internal stakeholders. We’ll consider how the package could fit in with existing organizational infrastructure. We’ll design and implement functions for data access, data analysis, and reporting. One of the hardest parts of the process could very well be gaining and maintaining internal support for an organizational package project. To address this, we’ll work through ways to communicate value and to develop an internal community of colleagues to sustain the project and to make it a valuable part of the core infrastructure.
Learning objectives
Attendees will learn how to create an R package from the ground up with functions available in the excellent usethis package. You'll get an introduction to package creation, with an emphasis on convenient workflows. We'll learn how to integrate functions that use database data to generate KPIs into a package project. There will also be a special focus on things that can be done to help make the package project succeed within the organization.
Is this course for me?
This workshop is appropriate for attendees who answer "yes" to these three questions:
- Do you work in an organization that uses R as part of its analytical toolchain?
- Could day-to-day data analysis tasks performed in R (at your organization) benefit from a suite of specialized R functions?
- Do you value consistency, quality, and standardization in the R work done in your organization?
Prework
All of the important details for the things you can do before the workshop are at: https://my-org-first-pkg-2020.netlify.com/pre/.
Schedule for Day 1 (January 27, 2020)
Time | Activity |
---|---|
09:00 - 10:30 | Welcome, Setup Packages |
10:30 - 11:00 | Coffee break |
11:00 - 12:30 | Write Code, Document |
12:30 - 13:30 | Lunch break |
13:30 - 15:00 | Test Code, Teach Others |
15:00 - 15:30 | Coffee break |
15:30 - 17:00 | Adding Data and Files, Wrap Up |
Instructor
Malcolm Barrett is an R developer and a PhD student in Epidemiology at the University of Southern California. His work in public health has spanned on-ground clinical education and research for clinical and cohort studies. Previously, he was an intern at RStudio, and he served two years in AmeriCorps at federally-qualified health centers in Michigan and New York City.
Schedule for Day 2 (January 28, 2020)
Time | Activity |
---|---|
09:00 - 10:30 | Working with Data in a Database |
10:30 - 11:00 | Coffee break |
11:00 - 12:30 | Package Functions |
12:30 - 13:30 | Lunch break |
13:30 - 15:00 | Package Management |
15:00 - 15:30 | Coffee break |
15:30 - 17:00 | Standardized Reporting, Wrap Up |
Rich Iannone
Rich is a software engineer that enjoys working with R. He likes to create R packages that help people to accomplish things. During workshops like this one, Rich wants to teach R material in a way that is both enjoyable and educational. While Rich very clearly digs R, he enjoys other things as well! Examples include: playing and listening to music, reading books, watching films, meeting up with friends, and wandering through the many valleys and ravines of the Greater Toronto Area.
This work is licensed under a Creative Commons Attribution 4.0 International License.