Vectors and iteration

Learning objectives

  • Review the major types of vectors
  • Demonstrate how to subset vectors
  • Demonstrate vector recycling
  • Define lists
  • Demonstrate iterative operations using loops and map() functions
  • Practice writing iterative operations using loops and map() functions

Notes

April 29, 2020

Vectors

  • R stores all of its data in an object called a vector
  • Two types
    • Atomic vectors
    • List objects

Atomic Vectors

Logical Vectors

  • TRUE, FALSE, or NA (missing value)

Numeric Vectors

  • Integers (whole numbers)
  • Doubles (numbers with decimal points)

Character Vectors

  • Contain strings

Atomic vectors are homogenous. You can't mix differet kinds of vectors

Scalars

  • Scalars are a single number; vectors are a set of multiple values
  • Vector of length one

Vector Recycling

  • tidyverse requires you do implicitly recycle a vector of shorter length. Base R does not

Subsetting

  • To filter a vector, we cannot use filter() because that only works for filtering rows in a tibble. [ is the subsetting function for vectors. It is used like x[a].
  • With positive integers
  • With negative integers
  • Don't mix positive and negative

Subset with a logical vector

  • Subsetting with a logical vector keeps all values corresponding to a TRUE value.
  • Function is.na() that checks whether or not an observation is a missing value
  • These technique are for subsetting a single vector

List

  • Created differently and have different properties than an atomic vector

List str()

str(x)

Store a mix of objects

  • Lists can store different kinds of atomic vectors
  • Lists can store lists

Nested Lists, etc.

Subsetting Lists!

Iterations

for() loop

  • Helpful, but not intuitive
  • Easier to make a mistake

Map functions

  • purrr()
  • More condensed
  • Most only require two arguments