SC1.47 ECS
Writing and maintaining R packages
Co-organized as AS6.5/CL6.06/GM12.3/HS12.13/NH10.8
Convener: Michael Dietze | Co-convener: Sebastian Kreutzer
Thu, 11 Apr, 08:30–10:15
Room -2.62

R is a free and open software that gained paramount relevance in data science, including fields of Earth sciences such as climatology, hydrology, geomorphology and remote sensing. R heavily relies on thousands of user-contributed collections of functions tailored to specific problems, called packages. Such packages are self-consistent, platform independent sets of documented functions, along with their documentations, examples and extensive tutorials/vignettes, which form the backbone of quantitative research across disciplines.

This short course focuses on consolidated R users that have already written their functions and wish to i) start appropriately organizing these in packages and ii) keep track of the evolution of the changes the package experiences. While there are already plenty of introductory courses to R we identified a considerable gap in the next evolutionary step: writing and maintaining packages.

The course covers:
- reasons for building packages,
- the general package structure and their essential elements,
- efficient ways to write and document functions,
- adding and documenting example data sets and examples,
- approaches to checking, building and sharing packages,
- versioning of packages using git and GitHub.

The course is open to everyone who is interested in R and whose experiences go beyond basic scripting. Participants should be able to answer the following questions right away: What is the difference between data type and data structure? How do matrices differ from lists? How are S4-objects indexed and how are lists indexed? What is the difference between lapply() and mapply()? What are the functions missing(), on.exit() and return() good for?