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 ofvthat consists of the second and third elements.- Vector elements can have names
Vectors have a
namesproperty, 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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access