Chapter 5. Data Structures
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, data frames, and tibbles (which are a special kind of data frame). If you have preconceptions about data structures, we suggest you put them aside. R does data structures differently than many other languages. Before we get to the recipes in this chapter, we’ll take a quick look at different data structures in R.
If you want to study the technical aspects of R’s data structures, we suggest reading R in a Nutshell and the R Language Definition. The notes here are more informal. These are things we wish we’d known when we started using R.
Vectors
Here are some key properties of vectors:
- Vectors are homogeneou.s
-
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"]]#> [1] 20
Lists
Here are ...
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