Chapter 5. Data Structures
Introduction
You can get pretty far in R just using vectors. That’s what Chapter 2 is all about. This chapter moves beyond vectors to recipes for matrices, lists, factors, and data frames. If you have preconceptions about data structures, I suggest you put them aside. R does data structures differently.
If you want to study the technical aspects of R’s data structures, I suggest reading R in a Nutshell (O’Reilly) and the R Language Definition. My notes here are more informal. These are things I wish I’d known when I started using R.
Vectors
Here are some key properties of vectors:
- Vectors are homogeneous
All elements of a vector must have the same type or, in R terminology, the same mode.
- Vectors can be indexed by position
So
v[2]
refers to the second element ofv
.- Vectors can be indexed by multiple positions, returning a subvector
So
v[c(2,3)]
is a subvector ofv
that consists of the second and third elements.- Vector elements can have names
Vectors have a
names
property, the same length as the vector itself, that gives names to the elements:>
v <- c(10, 20, 30)
>names(v) <- c("Moe", "Larry", "Curly")
>print(v)
Moe Larry Curly 10 20 30- If vector elements have names then you can select them by name
Continuing the previous example:
>
v["Larry"]
Larry 20
Lists
- Lists are heterogeneous
Lists can contain elements of different types; in R terminology, list elements may have different modes. Lists can even contain other structured objects, such as lists and data frames; this ...
Get R Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.