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
Copy file name to clipboardExpand all lines: inst/tutorials/A04Lc_comp_fig/A04Lc_comp_fig.Rmd
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -63,7 +63,7 @@ chart(marphy, Temperature ~ Station) +
63
63
labs(y = "Température [°C]")
64
64
```
65
65
66
-
Utilisez les données du jeu de données `marphy` pour reproduire le graphique ci-dessus représentant la température (`Temperature`) en fonction des stations échantillonnées (`Station`). Vous aurez besoin des fonction `geom_point()` et `geom_line()` pour réaliser ce graphique. Renommez également l'axe des ordonnées ("Température [C°]").
66
+
Utilisez les données du jeu de données `marphy` pour reproduire le graphique ci-dessus représentant la température (`Temperature`) en fonction des stations échantillonnées (`Station`). Vous aurez besoin des fonctions `geom_line()` et `geom_point()`*dans cet ordre*pour réaliser ce graphique. Renommez également l'axe des ordonnées ("Température [°C]") à l'aide de la fonction `labs()`.
**Ce tutoriel correspond à la version 2021-2022. Il est en cours de révision pour la version 2022-2023. Vous devez probablement penser à installer une version plus récente du package qui contient les exercices finalisés !**
36
-
37
35
## Objectifs
38
36
39
-
- Vérifier l'acquisition des notions relatives aux remaniement des données avec les fonctions `select()`/`fselect()`, `filter()`/`fsubset()`, `mutate()`/`fmutate()`, `group_by()`/`fgroup_by()`, `summarise()`/`fsummarise()`
37
+
- Vérifier la compréhension des fonctions servant au remaniement des données avec les fonctions `select()`/`sselect()`, `filter()`/`sfilter()`, `mutate()`/`smutate()`, `group_by()`/`sgroup_by()`, `summarise()`/`ssummarise()`
40
38
- Vérifier l'acquisition des compétences relatives au chaînage des instructions
41
39
42
40
## Calculer de nouvelles variables
43
41
44
-
Le remaniement des données est indispensable lors d'une analyse de données. Pour vérifier l'acquisition de ces compétences, le jeu de données sur la biométrie des crabes est employée.
42
+
Le remaniement des données est indispensable lors d'une analyse. Pour vérifier l'acquisition de ces compétences, le jeu de données sur la mesure de deux espèces de crabes est employé.
45
43
46
44
```{r}
47
45
SciViews::R
48
-
# Importation des données sur la biométrie des crabes
46
+
# Importation des données crabs
49
47
(crabs <- read("crabs", package = "MASS", lang = "fr"))
50
48
```
51
49
52
-
A partir du jeu de données `crabs`, calculez à l'aide de la fonction `fmutate()` :
50
+
À partir du jeu de données `crabs`, calculez à l'aide de la fonction speedy `smutate()` :
53
51
54
52
- le logarithme (`log()`) de la longueur de la carapace (`length`) des crabes et nommez cette nouvelle variables **length_log**
55
53
- la racine carrée (`sqrt()`) de la largueur de la carapace (`width`) et nommez cette nouvelle variable **width_sqrt**
56
54
- Divisez la variable lobe frontal (`front`) par 1000 et nommez cette nouvelle variable **front_m**
57
55
58
-
Affichez ensuite les premières lignes du tableau (`head()`). Par défaut, les 6 premières lignes sont affichées)
59
-
60
-
Vous devez obtenir le tableau ci-dessous :
56
+
Affichez ensuite les premières lignes du tableau (`head()`). Par défaut, les 6 premières lignes sont affichées). Vous devez obtenir le tableau ci-dessous :
61
57
62
58
```{r}
63
-
# fmutate
64
-
crabs <- fmutate(crabs,
59
+
crabs <- smutate(crabs,
65
60
length_log = log(length),
66
61
width_sqrt = sqrt(width),
67
-
front_m = front/1000)
62
+
front_m = front / 1000)
68
63
# Visualisation des premières lignes du tableau
69
64
head(crabs)
70
65
```
71
66
72
67
```{r mutate_h3, exercise=TRUE}
73
-
# fmutate
74
68
___ <- ___(___,
75
69
___ = ___,
76
70
___ = ___,
@@ -80,8 +74,7 @@ ___(___)
80
74
```
81
75
82
76
```{r mutate_h3-hint-1}
83
-
# fmutate
84
-
DF <- fmutate(___,
77
+
DF <- smutate(___,
85
78
length_log = ___,
86
79
width_sqrt = ___,
87
80
front_m = ___)
@@ -90,92 +83,93 @@ head(___)
90
83
```
91
84
92
85
```{r mutate_h3-hint-2}
93
-
# fmutate
94
-
crabs <- fmutate(crabs,
86
+
crabs <- smutate(crabs,
95
87
length_log = log(___),
96
88
width_sqrt = sqrt(___),
97
-
front_m = ___/1000)
89
+
front_m = ___ / 1000)
98
90
# Visualisation des premières lignes du tableau
99
91
head(___)
100
92
101
93
#### Attention : solution dans le 'hint' suivant! ####
102
94
```
103
95
104
96
```{r mutate_h3-solution}
105
-
# fmutate
106
-
crabs <- fmutate(crabs,
97
+
## Solution ##
98
+
crabs <- smutate(crabs,
107
99
length_log = log(length),
108
100
width_sqrt = sqrt(width),
109
-
front_m = front/1000)
101
+
front_m = front / 1000)
110
102
# Visualisation des premières lignes du tableau
111
103
head(crabs)
112
104
```
113
105
114
106
```{r mutate_h3-check}
115
-
grade_code("Vous savez maintenant comment calculer de nouvelles variables avec la fonction `fmutate()`.")
107
+
grade_code("Vous savez maintenant comment calculer de nouvelles variables avec la fonction `smutate()`.")
116
108
```
117
109
118
110
## Filtrer et sélectionner des données
119
111
120
-
Reprenons le jeu de données initial sur nos crabes (`crabs`)
112
+
Reprenons le jeu de données initial sur nos crabes (`crabs`).
121
113
122
114
```{r}
123
115
# Importation des données sur nos crabes
124
116
(crabs <- read("crabs", package = "MASS", lang = "fr"))
125
117
```
126
118
127
-
Réalisez les opérations suivantes avec les fonctions `filter()` et `select()` :
119
+
Réalisez les opérations suivantes avec les fonctions tidy `filter()` et `select()` :
128
120
129
121
- Retirer la variable index (`index`) du jeu de données
130
122
- Garder uniquement les individus mâles du jeu de données dont la longueur de la carapace est supérieure ou égale à 25 mm (variables `sex` et `length`)
131
-
- Affichez ensuite les premières lignes du tableau (par défaut, les 6 premières lignes sont affichées). Attention ! Comme la fonction que vous utiliserez est non-tidy, il faut collecter le tableau de résultats avant !
132
-
133
-
Employez le chaînage des instructions au sein d'un pipeline pour résoudre cette exercice.
123
+
- Enregistrez le résultat dans `crabs2`
124
+
- Affichez ensuite les premières lignes du tableau `crabs2`
134
125
135
-
Vous devez obtenir le tableau ci-dessous :
126
+
Employez le chaînage des instructions dans un pipeline pour résoudre cette exercice. Vous devez obtenir le tableau ci-dessous :
136
127
137
128
```{r}
138
129
crabs %>.%
139
130
select(., -index) %>.%
140
-
filter(., sex == "M" & length >= 25) %>.%
141
-
collect_dtx(.) %>.%
142
-
head(.)
131
+
filter(., sex == "M" & length >= 25) %->%
132
+
crabs2
133
+
head(crabs2)
143
134
```
144
135
145
136
```{r pipe1_h3, exercise=TRUE}
146
137
crabs ___
147
138
___(___, ___) ___
148
139
___(___, ___ & ___) ___
149
-
___(___) ___
150
-
___(___)
140
+
___
141
+
___(___)
151
142
```
152
143
153
144
```{r pipe1_h3-hint-1}
154
145
crabs %>.%
155
146
select(___, ___) ___
156
147
filter(___, ___ & ___) ___
157
-
collect_dtx(___) ___
158
-
head(___)
148
+
___
149
+
head(___)
159
150
```
160
151
161
152
```{r pipe1_h3-hint-2}
162
153
crabs %>.%
163
154
select(., - ___) %>.%
164
155
filter(___, sex == ___ & length >= ___) ___
165
-
collect_dtx(___) ___
166
-
head(___)
156
+
___
157
+
head(___)
158
+
159
+
#### Attention : solution dans le 'hint' suivant! ####
167
160
```
168
161
169
162
```{r pipe1_h3-solution}
163
+
## Solution ##
170
164
crabs %>.%
171
165
select(., -index) %>.%
172
-
filter(., sex == "M" & length >= 25) %>.%
173
-
collect_dtx(.) %>.%
174
-
head(.)
166
+
filter(., sex == "M" & length >= 25) %->%
167
+
crabs2
168
+
head(crabs2)
175
169
```
176
170
177
171
```{r pipe1_h3-check}
178
-
grade_code("Vous maitrisez maintenant la sélection de vos variables avec `select()` et de vos observations avec `filter()`. Ce sont des fonctions tidy, donc, pensez bien à collecter les résultats à la fin avec `collect_dtx()`, ou en assignant avec `%<-%` ou `%->%` !")
172
+
grade_code("La sélection de vos variables avec `select()` et de vos observations avec `filter()` (fonctions tidy) nécessite de collecter le résultat soit avec collect_dtx(), soit en utilisant l'assignation alternative %<-%ou %->% . En général dans un pipeline, finnissez toujours en assignant avec %->%, quelles que soient les fonctions utilisées.")
179
173
```
180
174
181
175
## Résumer des données
@@ -190,22 +184,22 @@ Reprenons le jeu de données initial `crabs`.
190
184
Réalisez les opérations suivantes :
191
185
192
186
- Sélectionnez les individus dont la longueur (`length`) est strictement supérieur à 25 mm
193
-
- Résumez le jeu de données par le sexe (`sex`) et par la variété (`species`) de *Leptograpsus variegatus*
187
+
- Résumez le jeu de données par le sexe (`sex`) et par la variété (`species`) de ce crabe dans cet ordre
194
188
- Calculez la moyenne de la largeur des carapaces (`width`) par groupe
195
-
- Dénombrez les individus par groupe
189
+
- Dénombrez les individus par groupe (y compris les valeurs manquantes)
190
+
- Dénombrez les observations par groupe (à l'exclusion des valeurs manquantes)
196
191
- Assignez le résultat à `crabs2`
197
-
- Formatez votre tableau `crabs2` avec la fonction `kintr::kable()`
198
-
199
-
Employez le chaînage des opérations au sein d'un pipeline pour résoudre cette exercice.
192
+
- Formatez votre tableau `crabs2` avec la fonction `knitr::kable()`
200
193
201
-
Vous devez obtenir le tableau ci-dessous :
194
+
Employez des fonction speedy et fstat uniquement et le chaînage des opérations dans un pipeline pour résoudre cette exercice. Vous devez obtenir le tableau ci-dessous :
202
195
203
196
```{r}
204
197
crabs %>.%
205
-
filter(., length > 25) %>.%
206
-
group_by(., sex, species) |> summarise(
207
-
mean = mean(width),
208
-
number = n()) %->%
198
+
sfilter(., length > 25) %>.%
199
+
sgroup_by(., sex, species) |> ssummarise(
200
+
mean = fmean(width),
201
+
number = fn(width),
202
+
observations = fnobs(width)) %->%
209
203
crabs2
210
204
knitr::kable(crabs2)
211
205
```
@@ -214,44 +208,51 @@ knitr::kable(crabs2)
214
208
crabs ___
215
209
___(___, ___) ___
216
210
___(___, ___, ___) ___ ___
217
-
mean = ___(___),
218
-
number = ___()) ___
211
+
mean = ___(___),
212
+
number = ___(___),
213
+
observations = ___(___)) ___
219
214
___
220
215
___(___)
221
216
```
222
217
223
218
```{r pipe2_h3-hint-1}
224
219
crabs %>.%
225
-
filter(___, ___) ___
226
-
group_by(___, ___, ___) ___ summarise(
227
-
mean = ___(___),
228
-
number = ___()) ___
220
+
sfilter(___, ___) ___
221
+
sgroup_by(___, ___, ___) ___ ssummarise(
222
+
mean = ___(___),
223
+
number = ___(___),
224
+
observations = ___(___)) ___
229
225
___
230
226
kintr::kable(___)
231
227
```
232
228
233
229
```{r pipe2_h3-hint-2}
234
230
crabs %>.%
235
-
filter(., length > ___) %>.%
236
-
group_by(., ___, ___) |> summarise(
237
-
mean = mean(___),
238
-
number = n()) ___
231
+
sfilter(., length > ___) %>.%
232
+
sgroup_by(., ___, ___) |> ssummarise(
233
+
mean = fmean(___),
234
+
number = fn(___),
235
+
observations = fnobs(___)) ___
239
236
___
240
237
knitr::kable(___)
238
+
239
+
#### Attention : solution dans le 'hint' suivant! ####
241
240
```
242
241
243
242
```{r pipe2_h3-solution}
243
+
## Solution ##
244
244
crabs %>.%
245
-
filter(., length > 25) %>.%
246
-
group_by(., sex, species) |> summarise(
247
-
mean = mean(width),
248
-
number = n()) %->%
245
+
sfilter(., length > 25) %>.%
246
+
sgroup_by(., sex, species) |> ssummarise(
247
+
mean = fmean(width),
248
+
number = fn(width),
249
+
observations = fnobs(width)) %->%
249
250
crabs2
250
251
knitr::kable(crabs2)
251
252
```
252
253
253
254
```{r pipe2_h3-check}
254
-
grade_code("Vous progressez à grand pas ! Vous savez maintenant résumer vos données avec `group_by()` et `summarise()` et formater vos sorties avec `knitr::kable()`. Très important : utilisez toujours l'assignation alternative `%->%` en fin de pipeline qui utilise des fonctions tidy.")
255
+
grade_code("Vous avez maintenant compris comment résumer vos données avec `(s)group_by()` et `(s)summarise()` et formater vos sorties avec `knitr::kable()`. Utilisez toujours l'assignation alternative `%->%` en fin de pipeline, c'est plus prudent.")
255
256
```
256
257
257
258
## Conclusion
@@ -260,11 +261,11 @@ Bravo ! Vous venez de terminer votre séance d'exercices relative à la manipul
260
261
261
262
Vous maîtriser maintenant :
262
263
263
-
- les notions relatives aux remaniement des données avec les fonctions `select()`, `filter()`, `mutate()`, `group_by()`, `summarise()`
264
-
- le chaînages des instructions au sein d'un pipeline
264
+
- les notions relatives aux remaniement des données avec les fonctions `(s)select()`, `(s)filter()`, `(s)mutate()`, `(s)group_by()`, `(s)summarise()`
265
+
- le chaînages des instructions dans un pipeline
265
266
- l'utilisation judicieuse de `%>.%` pour indiquer que l'on passe à l'opération suivante
266
-
- l'utilisation de `|>` pour organiser le code plus complexe au sein d'une même opération (typiquement un `group_by()` suivi d'un `summarise()`)
267
-
- l'assignation alternative `%->%` en fin de pipeline "tidy" pour collecter les résultats dans un tableau (data frame)
267
+
- l'utilisation de `|>` pour organiser le code plus complexe sur un même niveau (typiquement un `(s)group_by()` suivi d'un `(s)summarise()`)
268
+
- l'assignation alternative `%->%` en fin de pipeline tidy pour collecter les résultats dans un tableau
0 commit comments