You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Le format long d'un tableau de données correspond à un encodage en un minimum de colonnes, les données étant réparties sur un plus grand nombre de lignes en comparaison du format large qui regroupe les données dans plusieurs colonnes successives. Il est assez courant de devoir transformer un tableau large vers un tableau long. Cela permet souvent d'obtenir un tableau cas par variables correct. La fonction utile pour cela est la fonction `pivot_longer()` en version tidy, ou `spivot_longer()` en version speedy. Avec la fonction tidy, pensez bien à utiliser `collect_dtx()` ou les assignations alternatives `%<-%` ou `%->%` ensuite.
38
+
Le format long d'un tableau de données correspond à un encodage en un minimum de colonnes, les données étant réparties sur un plus grand nombre de lignes en comparaison du format large qui regroupe les données dans plusieurs colonnes successives. Il est assez courant de devoir transformer un tableau large vers un tableau long. Cela permet souvent d'obtenir un tableau cas par variables correct. La fonction utile pour cela est `pivot_longer()` en version tidy, ou `spivot_longer()` en version speedy.
long %<-% pivot_longer(wide, cols = "___":"___", names_to = "___",
103
+
long <- pivot_longer(wide, cols = "___":"___", names_to = "___",
104
104
values_to = "___")
105
105
head(long)
106
106
```
107
107
108
108
```{r wide1_h3-hint-2}
109
-
long %<-% pivot_longer(wide, cols = "1989":"1995", names_to = "___",
109
+
long <- pivot_longer(wide, cols = "1989":"1995", names_to = "___",
110
110
values_to = "___")
111
111
head(long)
112
112
@@ -115,7 +115,7 @@ head(long)
115
115
116
116
```{r wide1_h3-solution}
117
117
## Solution ##
118
-
long %<-% pivot_longer(wide, cols = "1989":"1995", names_to = "year",
118
+
long <- pivot_longer(wide, cols = "1989":"1995", names_to = "year",
119
119
values_to = "circumf")
120
120
head(long)
121
121
```
@@ -158,13 +158,13 @@ grade_code("Cette variante est parfois plus pratique, surtout avec des grands ta
158
158
Pour l'argument `cols =` vous pouvez aussi utiliser `start_with()` afin de sélectionner les colonnes dont le nom commence par une chaîne de caractères donnée pour le pivot. Créez à nouveau un tableau nommé `long` à partir du tableau `wide`. Utilisez à nouveau la fonction tidy ici.
long %<-% pivot_longer(wide, cols = starts_with("___"), names_to = "year",
167
+
long <- pivot_longer(wide, cols = starts_with("___"), names_to = "year",
168
168
values_to = "circumf")
169
169
head(long)
170
170
@@ -173,7 +173,7 @@ head(long)
173
173
174
174
```{r wide3_h2-solution}
175
175
## Solution ##
176
-
long %<-% pivot_longer(wide, cols = starts_with("19"), names_to = "year",
176
+
long <- pivot_longer(wide, cols = starts_with("19"), names_to = "year",
177
177
values_to = "circumf")
178
178
head(long)
179
179
```
@@ -187,13 +187,13 @@ grade_code("La sélection de variables à l'aide de `starts_with()` ou `ends_wit
187
187
Il est plus rare de passer d'un tableau long vers un tableau large. Cela est souvent utilisé lorsque l'on souhaite transformer ce tableau afin de le rendre plus compact pour l'inclure dans un rapport ou dans une présentation. La fonction utile pour cette transformation est `pivot_wider()` (version tidy) ou `spivot_wider()`(version speedy).
@@ -263,7 +263,7 @@ grade_code("Vous venez de réaliser un tableau large en partant d'un tableau lon
263
263
264
264
## Diviser des colonnes dans un tableau
265
265
266
-
La fonction à utiliser pour créer plusieurs variables en séparant les éléments qui se trouvent dans une seule colonne est `separate()` en tidy ou `sseparate()` en speedy. La fonction `unite()` ou `sunite()` est complémentaire de `separate()`/`sseparate()` et crée une variable à partir de plusieurs.
266
+
La fonction à utiliser pour créer plusieurs variables en séparant les éléments qui se trouvent dans une seule colonne est `separate()` en tidy ou `sseparate()` en speedy. La fonction `unite()` ou `sunite()` est complémentaire de `separate()`/`sseparate()` et crée une seule variable à partir de plusieurs.
267
267
268
268
```{r, eval=FALSE, echo=TRUE}
269
269
DF1 <- sseparate(DF, col = VARNAME, into = c("VAR1", "VAR2"),
@@ -272,11 +272,9 @@ DF1 <- sseparate(DF, col = VARNAME, into = c("VAR1", "VAR2"),
272
272
273
273
La fonction `separate()` ou `sseparate()` prend les arguments suivants :
274
274
275
-
- `col =` le nom de la variable à scinder
276
-
- `into =` le nom des nouvelles variables
277
-
- `sep =` le séparateur qui permet de scinder la variable sélectionnée en `col =`
278
-
279
-
Ici, nous utilisons la fonction speedy `sseparate()`. Si vous voulez utiliser la fonction tidy, vous devez d'abord convertir votre tableau en **data.frame** à l'aide de `as_dtf()` parce que la fonction `separate()` est boguée sur des **data.table**s.
275
+
-`col =` : le nom de la variable à scinder
276
+
-`into =` : le nom des nouvelles variables
277
+
-`sep =` : le séparateur qui permet de scinder la variable sélectionnée en `col =`
280
278
281
279
```{r separate_init}
282
280
bacteria <- dtx(
@@ -296,7 +294,7 @@ Sur base du tableau ci-dessous :
296
294
knitr::kable(bacteria)
297
295
```
298
296
299
-
Modifiez le tableau `bacteria` afin d'obtenir le tableau suivant que vous nommerez `bact` en utilisant une fonction speedy :
297
+
Modifiez le tableau `bacteria`pour obtenir le tableau suivant que vous nommerez `bact` en utilisant une fonction speedy :
300
298
301
299
```{r}
302
300
knitr::kable(bact)
@@ -334,12 +332,12 @@ head(bact)
334
332
```
335
333
336
334
```{r separate_h2-check}
337
-
grade_code("Vous venez de scinder une colonne de votre tableau avec `sseparate()`. Si vous utilisez `separate()` en version tidy sur le tableau tab, pensez bien à faire `separate(as_dtf(tab), ...)` pour contourner le bug.")
335
+
grade_code("Vous venez de scinder une colonne de votre tableau avec `sseparate()`. Vous pouvez également utiliser `separate()` en tidy.")
338
336
```
339
337
340
338
## Conclusion
341
339
342
-
Félicitation! Vous êtes maintenant capables de convertir des tableaux de long en large et inversement et de scinder des variables.
340
+
Félicitation! Vous êtes maintenant capables de convertir des tableaux de long en large et inversement et de scinder des variables.
Il y a plusieurs fonction qui permettent de fusionner des tableaux. Nous vous proposons d'employer `*_join()` comme `full_join()`/`sfull_join()`, `inner_join()`/`sinner_join()`, `left_join()`/`sleft_join()`, `right_join()`/`sright_join()`. Attention ! Les fonctions tidy non préfixées d'un "s" nécessitent des précautions pour **collecter** les résultats à la fin (utilisation de `collect_dtx()` ou les assignations alternatives `%<-%` ou `%->%`).
34
+
Il existe plusieurs fonctions qui permettent de fusionner des tableaux. Nous vous proposons d'employer `*_join()` comme `full_join()`/`sfull_join()`, `inner_join()`/`sinner_join()`, `left_join()`/`sleft_join()`, `right_join()`/`sright_join()`.
Ces quatre paires de fonctions utilisent la syntaxe suivante :
44
44
45
45
- les deux premiers arguments de la fonction sont les tableaux de données 1 et 2 qui doivent être fusionnés.
46
-
- `by =` le nom de la ou des variables qui permettent de lier les deux tableaux.
46
+
-`by =` : le nom de la ou des variables qui permettent de lier les deux tableaux.
47
47
48
-
Soyez particulièrement attentif lors des exercices ci-dessous, les fonctions utilisées semble similaire mais les différences peuvent grandement changer les résultats de la fusion de tableaux.
48
+
Soyez particulièrement attentif lors des exercices ci-dessous, les fonctions utilisées semblent similaires mais les différences peuvent grandement changer les résultats de la fusion de tableaux.
49
49
50
50
Des chercheurs réalisent une expérience avec plusieurs aquariums expérimentaux. Ils ont encodé les données dans deux tableaux distincts. Le premier tableau contient la variation de la température et de la salinité dans ces aquariums. Le second tableau reprend à la masse de l'organisme placé dans l'aquarium.
0 commit comments