From 7153452ee2c9a88d331bce404db9409ebd5083a1 Mon Sep 17 00:00:00 2001 From: Carine <carine.rey@ens-lyon.fr> Date: Mon, 22 Nov 2021 19:05:43 +0100 Subject: [PATCH] add examples in merging data section --- session_6/img/overview_joins.png | Bin 0 -> 51693 bytes session_6/img/overview_set.png | Bin 0 -> 11786 bytes session_6/session_6.Rmd | 68 ++++++++++++++++++++++--------- 3 files changed, 48 insertions(+), 20 deletions(-) create mode 100644 session_6/img/overview_joins.png create mode 100644 session_6/img/overview_set.png diff --git a/session_6/img/overview_joins.png b/session_6/img/overview_joins.png new file mode 100644 index 0000000000000000000000000000000000000000..c10e7cc0773fbf24d0c7fdd98a421feac170fd8b GIT binary patch literal 51693 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�CspF;|nyJHyX+dlx^^Ksx-2I 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 Vv0xw`24QmNw!K>m{^kF}e*t2Sv1b4P literal 0 HcmV?d00001 diff --git a/session_6/img/overview_set.png b/session_6/img/overview_set.png new file mode 100644 index 0000000000000000000000000000000000000000..d0f8132cd6459852b27df865f23ef101de02439b GIT binary patch literal 11786 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 LeOWAR68OIW4{6Wj literal 0 HcmV?d00001 diff --git a/session_6/session_6.Rmd b/session_6/session_6.Rmd index 5b57262..cbd408b 100644 --- a/session_6/session_6.Rmd +++ b/session_6/session_6.Rmd @@ -188,7 +188,9 @@ table2 %>% ## Relational data -Sometime the information can be split between different table +To avoid having a huge table and to save space, information is often splited between different tables. + +In our `flights` dataset, information about the `carrier` or the `airports` (origin and dest) are saved in a separate table (`airlines`, `airports`). ```{r airlines, eval=T, echo = T} library(nycflights13) @@ -200,27 +202,40 @@ flights2 <- flights %>% select(year:day, hour, origin, dest, tailnum, carrier) ``` -## Relational data +## Relational schema + +The relationships between tables can be seen in a relational graph. The variables used to connect each pair of tables are called keys. A key is a variable (or set of variables) that uniquely identifies an observation. ```{r airlines_dag, echo=FALSE, out.width='100%'} knitr::include_graphics('img/relational-nycflights.png') ``` -## joints +## Joints + +If you have to combine data from 2 tables in a a new table, you will use `joints`. + +There are several types of joints depending of what you want to get. ```{r joints, echo=FALSE, out.width='100%'} knitr::include_graphics('img/join-venn.png') ``` -## `inner_joint()` +Small concrete examples: + +```{r , echo=FALSE, out.width='100%'} +knitr::include_graphics('img/overview_joins.png') +``` + +### `inner_joint()` -Matches pairs of observations whenever their keys are equal +keeps observations in `x` AND `y` ```{r inner_joint, eval=T} flights2 %>% inner_join(airlines) ``` -## `left_joint()` + +### `left_joint()` keeps all observations in `x` @@ -229,7 +244,7 @@ flights2 %>% left_join(airlines) ``` -## `right_joint()` +### `right_joint()` keeps all observations in `y` @@ -238,7 +253,7 @@ flights2 %>% right_join(airlines) ``` -## `full_joint()` +### `full_joint()` keeps all observations in `x` and `y` @@ -251,29 +266,41 @@ flights2 %>% The default, `by = NULL`, uses all variables that appear in both tables, the so called natural join. -```{r left_join_weather, eval=T} +```{r , eval=T} flights2 %>% left_join(weather) ``` -## Defining the key columns +If the two tables contain columns with the same names but corresponding to different things (such as `year` in `flights2` and `planes`) you have to manually define the key or the keys. -The default, `by = NULL`, uses all variables that appear in both tables, the so called natural join. - -```{r left_join_tailnum, eval=T, echo = T} +```{r , eval=T, echo = T} flights2 %>% left_join(planes, by = "tailnum") ``` -## Defining the key columns - -A named character vector: `by = c("a" = "b")`. This will match variable `a` in table `x` to variable `b` in table `y`. +If you want to join by data that are in two columns with different names, you must specify the correspondence with a named character vector: `by = c("a" = "b")`. This will match variable `a` in table `x` to variable `b` in table `y`. -```{r left_join_airport, eval=T, echo = T} +```{r , eval=T, echo = T} flights2 %>% left_join(airports, c("dest" = "faa")) ``` +If 2 columns have identical names in the input tables but are not used in the join, they are automatically renamed with the suffix `.x` and `.y` because all column names must be different in the output table. + +```{r , eval=T, echo = T} +flights2 %>% + left_join(airports, c("dest" = "faa")) %>% + left_join(airports, c("origin" = "faa")) +``` + +You can change the suffix using the option `suffix` + +```{r , eval=T, echo = T} +flights2 %>% + left_join(airports, by = c("dest" = "faa")) %>% + left_join(airports, by = c("origin" = "faa"), suffix = c(".dest",".origin")) +``` + ## Filtering joins Filtering joins match observations in the same way as mutating joins, but affect the observations, not the variables. There are two types: @@ -281,9 +308,6 @@ Filtering joins match observations in the same way as mutating joins, but affect - `semi_join(x, y)` keeps all observations in `x` that have a match in `y`. - `anti_join(x, y)` drops all observations in `x` that have a match in `y`. - -## Filtering joins - ```{r top_dest, eval=T, echo = T} top_dest <- flights %>% count(dest, sort = TRUE) %>% @@ -300,4 +324,8 @@ These expect the x and y inputs to have the same variables, and treat the observ - `union(x, y)`: return unique observations in `x` and `y`. - `setdiff(x, y)`: return observations in `x`, but not in `y`. +```{r , echo=FALSE, out.width='100%'} +knitr::include_graphics('img/overview_set.png') +``` + ## See you in [R.7: String & RegExp](http://perso.ens-lyon.fr/laurent.modolo/R/session_7/) -- GitLab