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 `pivot_longer()` en version tidy, ou `spivot_longer()` en version speedy.
72
+
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 Tidyverse, ou `pivot_longer_()` en version svTidy.
@@ -132,7 +160,7 @@ grade_code("Vous venez de réaliser votre premier pivot de tableau.")
132
160
133
161
### Seconde variante de l'argument cols =
134
162
135
-
L'argument `cols =` de la fonction pivot accepte plusieurs écritures afin de spécifier les colonnes d'intérêts. Retirez la colonne qui ne doit pas subir le pivot dans la variante suivante pour à nouveau obtenir votre tableau `long`. Utilisez cette fois-ci la fonction speedy.
163
+
L'argument `cols =` de la fonction de pivot accepte plusieurs écritures pour spécifier les colonnes d'intérêts. Retirez la colonne qui ne doit pas subir le pivot dans la variante suivante pour à nouveau obtenir votre tableau `long`. Utilisez cette fois-ci la fonction svTidy.
long <- spivot_longer(wide, cols = !___, names_to = "year",
172
+
long <- pivot_longer_(wide, cols = ~!___, names_to = "year",
145
173
values_to = "circumf")
146
174
head(___)
147
175
@@ -150,18 +178,18 @@ head(___)
150
178
151
179
```{r wide2_h2-solution}
152
180
## Solution ##
153
-
long <- spivot_longer(wide, cols = !tree, names_to = "year",
181
+
long <- pivot_longer_(wide, cols = ~!tree, names_to = "year",
154
182
values_to = "circumf")
155
183
head(long)
156
184
```
157
185
158
186
```{r wide2_h2-check}
159
-
grade_code("Cette variante est parfois plus pratique, surtout avec des grands tableaux. Elle fonctionne aussi bien avec les fonctions tidy que speedy.")
187
+
grade_code("Cette variante est parfois plus pratique, surtout avec des grands tableaux. Elle fonctionne aussi bien avec les fonctions tidyverse que svTidy, à condition pour ces dernières de ne pas oublier de transformer l'expression en formule en ajoutant un `~` devant.")
160
188
```
161
189
162
190
### Troisième variante de l'argument cols =
163
191
164
-
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.
192
+
Pour l'argument `cols =` vous pouvez aussi utiliser `starts_with()`pour sélectionner les colonnes dont le nom commence par une chaîne de caractères donnée. Créez à nouveau un tableau nommé `long` à partir du tableau `wide`. Utilisez à nouveau la fonction tidyverse ici.
grade_code("La sélection de variables à l'aide de `starts_with()` ou `ends_with()` peut rendre de grands services icicomme dans `select()` par exemple.")
216
+
grade_code("La sélection de variables à l'aide de `starts_with()` ou `ends_with()` peut rendre de grands services ici, tout comme dans `select_()`/`select()`, par exemple, elle fonctionne aussi avec les fonctions svTidy, après avoir transformé l'expression en formule.")
189
217
```
190
218
191
219
## De long vers large
192
220
193
-
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).
221
+
Il est plus rare de passer d'un tableau long vers un tableau large. Cela est souvent utilisé lorsque l'on souhaite transformer le jeu de données pour le rendre plus compact (par exemple, pour l'imprimer dans un rapport ou dans une présentation). La fonction utile pour cette transformation est `pivot_wider()` (version tidyverse) ou `pivot_wider_()`(version svTidy).
grade_code("Vous venez de réaliser un tableau large en partant d'un tableau long. Comme vous pouvez le voir, la syntaxe est très similaire entre `pivot_wider()` et `pivot_longer()` (ou leurs équivalents speedy). Elles se complètent parfaitement.")
295
+
grade_code("Vous venez de réaliser un tableau large en partant d'un tableau long. Comme vous pouvez le voir, la syntaxe est très similaire entre `pivot_wider()` et `pivot_longer()` (ou leurs équivalents svTidy). Elles se complètent parfaitement.")
268
296
```
269
297
270
298
## Diviser des colonnes dans un tableau
271
299
272
-
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.
300
+
La fonction à utiliser pour créer plusieurs variables en séparant les éléments qui se trouvent dans une seule colonne est `separate()` en tidyverse ou `separate_()` en svTidy. La fonction `unite()` ou `unite_()` est complémentaire de `separate()`/`separate_()` et crée une seule variable à partir de plusieurs.
273
301
274
302
```{r, eval=FALSE, echo=TRUE}
275
-
DF1 <- sseparate(DF, col = VARNAME, into = c("VAR1", "VAR2"),
303
+
DF1 <- separate_(DF, col = VARNAME, into = c("VAR1", "VAR2"),
276
304
sep = "[^[:alnum:]]+")
277
305
```
278
306
279
-
La fonction `separate()` ou `sseparate()` prend les arguments suivants :
307
+
La fonction `separate()` ou `separate_()`a les principaux arguments suivants :
280
308
281
309
-`col =` : le nom de la variable à scinder
282
310
-`into =` : le nom des nouvelles variables
@@ -291,16 +319,16 @@ bacteria <- dtx(
291
319
value = c((11:13)^3, (11:13)^4, (11:13)^5)
292
320
)
293
321
294
-
bact <- sseparate(bacteria, col = batch, into = c("rep", "date"), sep = "_" )
322
+
bact <- separate_(bacteria, col = 'batch', into = c('rep', 'date'), sep = "_" )
295
323
```
296
324
297
-
Sur base du tableau ci-dessous :
325
+
Voici un jeu de données nommé `bacteria` dont la première colonne combine deux informations (le lot et la date) :
298
326
299
327
```{r}
300
328
knitr::kable(bacteria)
301
329
```
302
330
303
-
Modifiez le tableau `bacteria` pour obtenir le tableau suivant que vous nommerez `bact` en utilisant une fonction speedy :
331
+
Modifiez ce tableau `bacteria`en un tableau à trois colonnes que vous nommerez `bact` en utilisant une fonction svTidy :
304
332
305
333
```{r}
306
334
knitr::kable(bact)
@@ -323,7 +351,7 @@ head(___)
323
351
```
324
352
325
353
```{r separate_h2-hint-1}
326
-
bact <- sseparate(bacteria, col = batch,
354
+
bact <- separate_(bacteria, col = "batch",
327
355
into = c("___", "___"), sep = "___")
328
356
head(bact)
329
357
@@ -332,13 +360,13 @@ head(bact)
332
360
333
361
```{r separate_h2-solution}
334
362
## Solution ##
335
-
bact <- sseparate(bacteria, col = batch,
363
+
bact <- separate_(bacteria, col = "batch",
336
364
into = c("rep", "date"), sep = "_" )
337
365
head(bact)
338
366
```
339
367
340
368
```{r separate_h2-check}
341
-
grade_code("Vous venez de scinder une colonne de votre tableau avec `sseparate()`. Vous pouvez également utiliser `separate()` en tidy.")
369
+
grade_code("Vous venez de scinder une colonne de votre tableau avec `separate_()`. Vous pouvez également utiliser `separate()` en mode tidyverse.")
0 commit comments