Course: Advanced R programming

Course website: https://www.physalia-courses.org/courses-workshops/course47/

Berlin, 1-5 July 2019

**Summary**

This course aims at giving the students abilities in R programming that go beyond basic R usage. This includes both learning important frameworks as well as tips & tricks and coding style. However, the course will not be highly specialized; rather, it will give a wide overview of the R landscape.

**Prerequisites**

The students should have a basic skill set in R. They should be able to write simple programs comfortably, install packages from CRAN and BioConductor, be comfortable with their preferred coding environment and basic data import and export functions.

Basic skills in statistics are necessary. The students should understand the concepts of statistical hypothesis testing and p-values. However, an in-depth introduction to these concepts will also be provided.

Learning how to code is most effective if applied to a real problem. The students are highly encouraged to bring their own ideas for programs. A few ideas, however, will be provided.

**The students will learn:**

• good coding practices

• sanitizing data, the tidyverse

• advanced graphics in R (both base R graphics and ggplot2)

• the R modelling interface

• using R for manuscript writing

• how to create own R packages

**Scheme**

On each day, the course will consist of three parts: two guided parts and one self-study part. Each guided part will consist with a lecture and a number of excercises. During the self-study part, students will be encouraged to create their own software packages.

**Program**:

**Monday - Classes from 9:30 to 17:30**

• Starting with the data

– Part I: Good coding practices and common fails (Intro to git and github)

– Part II: Data sanitization and the tidyverse

**Tuesday - Classes from 9:30 to 17:30**

• Graphics in R

– Part I: using basic R graphics efficiently

– Part II: ggplot2

**Wednesday - Classes from 9:30 to 17:30**

• Advanced statistics in R

– Part I: the modelling interface in R

– Part II: advanced statistical programming in R

**Thursday - Classes from 9:30 to 17:30**

• Package building in R

– Part I: building your first package

– Part II: testthat & roxygen: testing, documenting, QA

**Friday - Classes from 9:30 to 17:30**

• Individual work

– Part I: Tips and tricks, Questions and Answers