This is potentially a bigger change, or at least a different change. Both there and in getting started, we do a join on an in-memory table just to do essentially x - mean(x). But now arrow supports doing that directly in mutate() (well, it does the join for you 😂 ). That's worth showing too.
We do have "real" joins in files-and-formats (joining on the codebook to map codes to labels) and advanced-topics (joining to the geo data). So maybe in the data-manipulation chapter we keep it with a more contrived join just to illustrate that you can, and say for some more applications of joins, see chapter @ref and @ref.
Also consider these comments:
The join example is contrived. We could write the reference table to a file and read it back in to better represent a more realistic example.
Is this the first introduction of an Arrow Table? Seems a bit out of the blue? Should Arrow Table be bolded (first time using this proper noun for the reader) Just hit the Arrow Table intro in 4.2.1. I think you should move a mimimal amount of that intro up here or refer to this bit and/or have some duplication?
Not sure if the join section explained what happens if one table is an arrow table and the other is a data.frame. It showed that as an example and it worked, but what is actually happening there?
From earlier feedback:
Also consider these comments: