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
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