Skip to content

Commit f001dd6

Browse files
committed
Learnrs of module 5 ready for 2025-2026
1 parent c467433 commit f001dd6

File tree

4 files changed

+110
-50
lines changed

4 files changed

+110
-50
lines changed

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Package: BioDataScience1
2-
Version: 2025.4.0
2+
Version: 2025.5.0
33
Title: A Series of Learnr Documents for Biological Data Science 1
44
Description: Interactive documents using learnr and shiny applications for studying biological data science.
55
Authors@R: c(

NEWS.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# BioDataScience1 2025.5.0
2+
3+
- Learnrs **A05La_recombinaison** and **A05Lb_multi_table** revised for 2025-2026.
4+
15
# BioDataScience1 2025.4.0
26

37
- Learnr **A04La_wrangling** revised for 2025-2026.

inst/tutorials/A05La_recombination/A05La_recombination.Rmd.inactivated renamed to inst/tutorials/A05La_recombination/A05La_recombination.Rmd

Lines changed: 61 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,34 @@ runtime: shiny_prerendered
1515
```{r setup, include=FALSE}
1616
BioDataScience1::learnr_setup()
1717
SciViews::R(lang = "fr")
18+
# Required for RSConnect
19+
# SciViews::R
20+
library(rlang)
21+
library(data.table)
22+
library(ggplot2)
23+
library(tibble)
24+
library(tidyr)
25+
library(dplyr)
26+
library(dtplyr)
27+
library(broom)
28+
library(forcats)
29+
library(collapse)
30+
library(fs)
31+
library(data.trame)
32+
library(svFast)
33+
library(svTidy)
34+
library(svMisc)
35+
library(svBase)
36+
library(svFlow)
37+
library(data.io)
38+
library(chart)
39+
library(tabularise)
40+
library(SciViews)
41+
# ... more
42+
library(readxl)
43+
library(testthat)
44+
library(equatags)
45+
library(BioDataScience)
1846
```
1947

2048
```{r, echo=FALSE}
@@ -41,13 +69,13 @@ BioDataScience1::learnr_server(input, output, session)
4169

4270
## De large vers long
4371

44-
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.
4573

4674
```{r, eval=FALSE, echo=TRUE}
47-
DF1 <- spivot_longer(DF, cols = SELECTION, names_to = NEWVAR1, values_to = NEWVAR2)
75+
DF1 <- pivot_longer_(DF, cols = SELECTION, names_to = NEWVAR1, values_to = NEWVAR2)
4876
```
4977

50-
La fonction `pivot_longer()` ou `spivot_longer()` a les arguments suivants :
78+
La fonction `pivot_longer()` ou `pivot_longer_()` a les arguments principaux suivants :
5179

5280
- `cols =` : les variables qui doivent être pivotées
5381
- `names_to =` : le nom de la nouvelle variable qui reprend le nom des colonnes pivotées
@@ -64,12 +92,12 @@ long <- dtx(
6492
circumf = size
6593
)
6694
67-
wide <- spivot_wider(long, names_from = year, values_from = circumf)
68-
long1 <- spivot_longer(wide, cols = "1989":"1995", names_to = "year",
69-
values_to = "circumf")
95+
wide <- pivot_wider_(long, names_from = 'year', values_from = 'circumf')
96+
long1 <- pivot_longer_(wide, cols = ~'1989':'1995', names_to = 'year',
97+
values_to = 'circumf')
7098
```
7199

72-
Sur base du tableau `wide` ci-dessous :
100+
Voici un jeu de données nommé `wide` :
73101

74102
```{r}
75103
knitr::kable(wide)
@@ -83,7 +111,7 @@ knitr::kable(long1)
83111

84112
### Première variante de l'argument cols
85113

86-
Complétez le code pour obtenir le tableau `long` avec une fonction tidy.
114+
Complétez le code pour obtenir le tableau `long` avec une fonction tidyverse.
87115

88116
```{r wide-prep}
89117
time <- 1989:1995
@@ -96,7 +124,7 @@ long <- dtx(
96124
circumf = size
97125
)
98126
99-
wide <- spivot_wider(long, names_from = year, values_from = circumf)
127+
wide <- pivot_wider_(long, names_from = 'year', values_from = 'circumf')
100128
```
101129

102130
```{r wide1_h3, exercise = TRUE, exercise.setup = "wide-prep"}
@@ -132,7 +160,7 @@ grade_code("Vous venez de réaliser votre premier pivot de tableau.")
132160

133161
### Seconde variante de l'argument cols =
134162

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.
136164

137165
```{r wide2_h2, exercise = TRUE, exercise.setup = "wide-prep"}
138166
___ <- ___(___, cols = ___, names_to = "___",
@@ -141,7 +169,7 @@ head(___)
141169
```
142170

143171
```{r wide2_h2-hint-1}
144-
long <- spivot_longer(wide, cols = !___, names_to = "year",
172+
long <- pivot_longer_(wide, cols = ~!___, names_to = "year",
145173
values_to = "circumf")
146174
head(___)
147175
@@ -150,18 +178,18 @@ head(___)
150178

151179
```{r wide2_h2-solution}
152180
## Solution ##
153-
long <- spivot_longer(wide, cols = !tree, names_to = "year",
181+
long <- pivot_longer_(wide, cols = ~!tree, names_to = "year",
154182
values_to = "circumf")
155183
head(long)
156184
```
157185

158186
```{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.")
160188
```
161189

162190
### Troisième variante de l'argument cols =
163191

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.
165193

166194
```{r wide3_h2, exercise = TRUE, exercise.setup = "wide-prep"}
167195
___ <- ___(., cols = ___("___"), names_to = "___",
@@ -185,18 +213,18 @@ head(long)
185213
```
186214

187215
```{r wide3_h2-check}
188-
grade_code("La sélection de variables à l'aide de `starts_with()` ou `ends_with()` peut rendre de grands services ici comme 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.")
189217
```
190218

191219
## De long vers large
192220

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).
194222

195223
```{r, eval=FALSE, echo=TRUE}
196-
DF1 <- spivot_wider(DF, names_from = VAR1, values_from = VAR2)
224+
DF1 <- pivot_wider_(DF, names_from = VAR1, values_from = VAR2)
197225
```
198226

199-
La fonction `pivot_wider()` ou `spivot_wider()` requiert pour arguments :
227+
La fonction `pivot_wider()` ou `pivot_wider_()` a pour principaux arguments :
200228

201229
- `names_from =` : le nom de la variable dont les valeurs vont être employées comme les noms des nouvelles variables.
202230
- `values_from =` : le nom de la variable dont les valeurs vont être employées comme les valeurs des nouvelles variables.
@@ -214,16 +242,16 @@ demography <- dtx(
214242
population = popu
215243
)
216244
217-
demo <- spivot_wider(demography, names_from = year, values_from = population)
245+
demo <- pivot_wider_(demography, names_from = 'year', values_from = 'population')
218246
```
219247

220-
Sur base du tableau ci-dessous :
248+
Voici un petit jeu de données au format long nommé `demography` :
221249

222250
```{r}
223251
knitr::kable(demography)
224252
```
225253

226-
Modifiez le tableau `demography` afin d'obtenir le tableau suivant que vous nommerez `demo` :
254+
Modifiez ce tableau `demography` en un tableau large que vous nommerez `demo` :
227255

228256
```{r}
229257
knitr::kable(demo)
@@ -243,7 +271,7 @@ demography <- dtx(
243271
)
244272
```
245273

246-
Complétez l'instruction ci-dessous en utilisant une fonction tidy.
274+
Complétez l'instruction ci-dessous en utilisant une fonction tidyverse.
247275

248276
```{r long_h2, exercise=TRUE, exercise.setup="long-prep"}
249277
___ <- ___(___, names_from = ___, values_from = ___)
@@ -259,24 +287,24 @@ head(demo)
259287

260288
```{r long_h2-solution}
261289
## Solution ##
262-
demo <- pivot_wider(demography, names_from = year, values_from = population)
290+
demo <- pivot_wider(demography, names_from = "year", values_from = "population")
263291
head(demo)
264292
```
265293

266294
```{r long_h2-check}
267-
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.")
268296
```
269297

270298
## Diviser des colonnes dans un tableau
271299

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.
273301

274302
```{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"),
276304
sep = "[^[:alnum:]]+")
277305
```
278306

279-
La fonction `separate()` ou `sseparate()` prend les arguments suivants :
307+
La fonction `separate()` ou `separate_()` a les principaux arguments suivants :
280308

281309
- `col =` : le nom de la variable à scinder
282310
- `into =` : le nom des nouvelles variables
@@ -291,16 +319,16 @@ bacteria <- dtx(
291319
value = c((11:13)^3, (11:13)^4, (11:13)^5)
292320
)
293321
294-
bact <- sseparate(bacteria, col = batch, into = c("rep", "date"), sep = "_" )
322+
bact <- separate_(bacteria, col = 'batch', into = c('rep', 'date'), sep = "_" )
295323
```
296324

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) :
298326

299327
```{r}
300328
knitr::kable(bacteria)
301329
```
302330

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 :
304332

305333
```{r}
306334
knitr::kable(bact)
@@ -323,7 +351,7 @@ head(___)
323351
```
324352

325353
```{r separate_h2-hint-1}
326-
bact <- sseparate(bacteria, col = batch,
354+
bact <- separate_(bacteria, col = "batch",
327355
into = c("___", "___"), sep = "___")
328356
head(bact)
329357
@@ -332,13 +360,13 @@ head(bact)
332360

333361
```{r separate_h2-solution}
334362
## Solution ##
335-
bact <- sseparate(bacteria, col = batch,
363+
bact <- separate_(bacteria, col = "batch",
336364
into = c("rep", "date"), sep = "_" )
337365
head(bact)
338366
```
339367

340368
```{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.")
342370
```
343371

344372
## Conclusion

0 commit comments

Comments
 (0)