Programming with R

The best way to learn how to program is to do something useful, so this introduction to R is built around a common scientific task: data analysis.

Our real goal isn’t to teach you R, but to teach you the basic concepts that all programming depends on. We use R in our lessons because:

  1. we have to use something for examples;
  2. it’s free, well-documented, and runs almost everywhere;
  3. it has a large (and growing) user base among scientists; and
  4. it has a large library of external packages available for performing diverse tasks.

But the two most important things are to use whatever language your colleagues are using, so you can share your work with them easily, and to use that language well.

We are studying inflammation in patients who have been given a new treatment for arthritis, and need to analyze the first dozen data sets of their daily inflammation. The data sets are stored in CSV format (comma-separated values): each row holds information for a single patient, and the columns represent successive days. The first few rows of our first file look like this:

0,0,1,3,1,2,4,7,8,3,3,3,10,5,7,4,7,7,12,18,6,13,11,11,7,7,4,6,8,8,4,4,5,7,3,4,2,3,0,0
0,1,2,1,2,1,3,2,2,6,10,11,5,9,4,4,7,16,8,6,18,4,12,5,12,7,11,5,11,3,3,5,4,4,5,5,1,1,0,1
0,1,1,3,3,2,6,2,5,9,5,7,4,5,4,15,5,11,9,10,19,14,12,17,7,12,11,7,4,2,10,5,4,2,2,3,2,2,1,1
0,0,2,0,4,2,2,1,6,7,10,7,9,13,8,8,15,10,10,7,17,4,4,7,6,15,6,4,9,11,3,5,6,3,3,4,2,3,2,1
0,1,1,3,3,1,3,5,2,4,4,7,6,5,3,10,8,10,6,17,9,14,9,7,13,9,12,6,7,7,9,6,3,2,2,4,2,0,1,1

We want to:

To do all that, we’ll have to learn a little bit about programming.

Prerequisites

Learners need to understand the concepts of files and directories (including the working directory). We often use RStudio to teach this lesson, but it is not required.

Schedule

Setup Download files required for the lesson
00:00 1. Introduction to R and RStudio How to find your way around RStudio?
How to interact with R?
How to manage your environment?
How to install packages?
00:55 2. Analyzing Patient Data How do I read data into R?
How do I assign variables?
What is a data frame?
How do I access subsets of a data frame?
How do I calculate simple statistics like mean and median?
Where can I get help?
How can I plot my data?
01:40 3. Data Structures How can I read data in R?
What are the basic data types in R?
How do I represent categorical information in R?
02:35 4. Exploring Data Frames How can I manipulate a data frame?
03:05 5. Subsetting Data How can I work with subsets of data in R?
03:55 6. Writing Data How can I save plots and data created in R?
04:15 7. Control Flow How can I make data-dependent choices in R?
How can I repeat operations in R?
05:20 8. Creating Publication-Quality Graphics with ggplot2 How can I create publication-quality graphics in R?
06:40 9. GIT SECTION: Best Practices for Writing R Code How can I write R code that other people can understand and use?
06:50 10. GIT SECTION: Writing Good Software How can I write software that other people can use?
07:05 11. EXTRA: Command-Line Programs How do I write a command-line script?
How do I read in arguments from the command-line?
07:35 12. EXTRA: Creating Functions How do I make a function?
How can I test my functions?
How should I document my code?
08:05 13. EXTRA: Making Packages in R How do I collect my code together so I can reuse it and share it?
How do I make my own packages?
08:35 14. Analyzing Multiple Data Sets How can I do the same thing to multiple data sets?
How do I write a for loop?
09:05 15. Making Choices How do I make choices using if and else statements?
How do I compare values?
How do I save my plots to a PDF file?
09:35 16. Dynamic Reports with knitr How can I put my text, code, and results all in one document?
How do I use knitr?
How do I write in Markdown?
09:55 17. MERGE 01: Introduction to RStudio How do I use the RStudio graphical user interface?
10:10 18. MERGE 04: Addressing Data What are the different methods for accessing parts of a data frame?
10:30 19. MERGE 06: Reading and Writing CSV Files How do I read data from a CSV file into R?
How do I write data to a CSV file?
11:00 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.