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 of `v`.

Vectors can be indexed by multiple positions, returning a subvector.

So `v[c(2,3)]` is a subvector of `v` 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"``]]`
`#> [1] 20````

Lists

Here are ...

Get R Cookbook, 2nd Edition 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.