Suggest/joins (#1469)

* - better to make code compatible with the figure
- better to remove the last row: 1 Max NA
- make sure at leaset one employee born before Jan 10, and make output reproducible

* Use join_by()

---------

Co-authored-by: Mine Çetinkaya-Rundel <cetinkaya.mine@gmail.com>
This commit is contained in:
Mitsuo Shiota 2023-11-09 12:24:18 +09:00 committed by GitHub
parent 6b90ffda93
commit d5b151c360
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 2 deletions

View File

@ -673,7 +673,7 @@ In equi joins the `x` keys and `y` are always equal, so we only need to show one
We can request that dplyr keep both keys with `keep = TRUE`, leading to the code below and the re-drawn `inner_join()` in @fig-inner-both. We can request that dplyr keep both keys with `keep = TRUE`, leading to the code below and the re-drawn `inner_join()` in @fig-inner-both.
```{r} ```{r}
x |> left_join(y, by = "key", keep = TRUE) x |> inner_join(y, join_by(key == key), keep = TRUE)
``` ```
```{r} ```{r}
@ -771,7 +771,7 @@ One small useful technique is to use them to restrict the cross join so that ins
```{r} ```{r}
df <- tibble(id = 1:4, name = c("John", "Simon", "Tracy", "Max")) df <- tibble(id = 1:4, name = c("John", "Simon", "Tracy", "Max"))
df |> left_join(df, join_by(id < id)) df |> inner_join(df, join_by(id < id))
``` ```
### Rolling joins ### Rolling joins
@ -811,6 +811,7 @@ parties <- tibble(
Now imagine that you have a table of employee birthdays: Now imagine that you have a table of employee birthdays:
```{r} ```{r}
set.seed(123)
employees <- tibble( employees <- tibble(
name = sample(babynames::babynames$name, 100), name = sample(babynames::babynames$name, 100),
birthday = ymd("2022-01-01") + (sample(365, 100, replace = TRUE) - 1) birthday = ymd("2022-01-01") + (sample(365, 100, replace = TRUE) - 1)