Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

I’ve uploaded 20+ R tutorials to YouTube for a new undergraduate course in Ecology and Evolutionary Biology at CU developed by Andrew Martin and Brett Melbourne, which in jocular anticipation was named IQUIT: an introduction to quantitative inference and thinking.

We made the videos to address the most common R programming problems that arose for students in the first iteration of the course. These short tutorials may be of use elsewhere:

Introduction to R

• everything is an object
• assignment

Numeric vectors: 1

• vectors vs. scalars
• create vectors with `c()`

Numeric vectors: 2

• how to explore the structure of a vector
• `class`, `length`, `str`

Functions in R

• input and output
• single argument functions: `sqrt`, `log`, `exp`
• multi-argument functions: `round`

Creating special vectors: sequences and repetition

• generate integer sequence: `:`
• create sequence `seq` (hit args)
• repeat something `rep` (also note argument structure)

Relational operators and logical data types

• logical types (intro to relational operators)
• `==`, `!=`, `>`, `<`, `>=`, `<=`
• `TRUE` and `FALSE`

Character data

• character objects
• character vectors
• relational operators on character vectors

2-d data structures: matrices and data frames

• data frames can hold lots of different data types
• matrix elements must be of the same type

Intro to indexing: matrices and vectors

• indexing and subsetting with `[`
• review `str`
• a bit with relational operators

Data frame subsetting and indexing

• indexing with relational operators
• 3 ways to subset data frame: `df[c 1="names")" language="("column"][/c], df\$column, df[, 1]`

R style & other secrets to happiness

• basics of R style: spacing, alignment,
• breaking up run-on lines
• workspace management
• `ls`, `rm`
• choosing good names for files and objects
• commenting

Working with data in R: 1

• reading in data with `read.csv`
• automatic conversion of missing values to `NA`

Working with data in R: 2

• mixed type errors (numbers read in as characters because one cell has a letter)
• search path errors
• `is.na`

Visualization part 1: intro to plot()

• `plot`
• arguments: `xlab`, `ylab`, `col`

Visualization part 2: other types of plots

• histograms, jitter plots, line graphs

Visualization part 3: adding data to plots

• adding `points`
• adding `lines`, and `segments` (also `abline`)

Visualization part 4: annotation and legends

• annotation via `text`

Visualization part 5: graphical parameters

• commonly used parameters
• for points: `col`, `cex`, `pch` (see `?points` for `pch` options)
• for lines: `col`, `lwd`, `lty`

• the power of the `for` loop
• creating objects to hold results ahead of time, rather than growing objects

Summarizing data

• `mean`, `sd`, `var`, `median`

Randomization & sampling distributions

• `sample` and `rep`

Debugging R code 1: letting R find your data

• working directory errors when reading in data
• problems with typos, using objects that don’t exist

Debugging R code 2: unreported errors

• errors do not always bring error messages
• steps to finding & fixing errors

Replication and sample size

• explore the effect of `n` on the uncertainty in a sample mean

Conveying uncertainty with confidence intervals while not obscuring the data

• constructing confidence intervals
• plot CIs using the `segments` function

Differences in means

• given two populations, simulate the null sampling distribution of the difference in means
• randomly assign individuals to a group using `sample` or some other scheme, then iteratively simulate differences in means with CIs