Skip to content

Commit db72f5b

Browse files
committed
Tutorial B00La_refresh
1 parent b3d8a4f commit db72f5b

File tree

1 file changed

+31
-29
lines changed

1 file changed

+31
-29
lines changed

inst/tutorials/B00La_refresh/B00La_refresh.Rmd

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ author: "Guyliann Engels & Philippe Grosjean"
44
description: "**SDD II** Rappel des notions importantes du cours de SDD I."
55
tutorial:
66
id: "B00La_refresh"
7-
version: 2.5.0/22
7+
version: 3.0.0/22
88
output:
99
learnr::tutorial:
1010
progressive: true
@@ -28,22 +28,24 @@ library(broom)
2828
library(forcats)
2929
library(collapse)
3030
library(fs)
31+
library(data.trame)
32+
library(svFast)
33+
library(svTidy)
3134
library(svMisc)
3235
library(svBase)
3336
library(svFlow)
3437
library(data.io)
3538
library(chart)
3639
library(tabularise)
3740
library(SciViews)
38-
# model
39-
library(modelit)
40-
# infer
41-
library(distributional)
42-
library(inferit)
4341
# ... more
4442
library(readxl)
4543
library(testthat)
4644
library(equatags)
45+
# 'model' and 'infer' packages
46+
library(modelit)
47+
library(distributional)
48+
library(inferit)
4749
4850
# datasets
4951
## crabs
@@ -72,7 +74,7 @@ read(file = system.file("extdata", "belgianblue.xlsx",
7274
weight = "Masse",
7375
age = "Age",
7476
variety = "Variété"),
75-
unit = list(
77+
units = list(
7678
weight = "kg",
7779
age = "mois")) %->%
7880
bull
@@ -99,15 +101,15 @@ BioDataScience2::learnr_server(input, output, session)
99101
Ce cours de **Science des données II : analyse et modélisation** fait suite au cours de **Science des données I : visualisation et inférence**. Vous pouvez retrouver ces deux cours directement à <https://wp.sciviews.org/>. Ce tutoriel vise à :
100102

101103
- Réviser les notions essentielles du cours de Science des données I
102-
- Découvrir quelques nouveautés liées à la SciViews Box 2024
104+
- Découvrir quelques nouveautés liées à la SciViews Box 2025
103105

104106
Le cours de Science des données I se divise en deux parties. La première partie traite principalement de la réalisation de graphiques et du remaniement des données. La seconde partie s'intéresse aux probabilités, aux distributions statistiques les plus courantes en biologie ainsi qu'aux tests d'inférence (test *t* de Student, test de Wilcoxon, ANOVA, test de Kruskal-Wallis...).
105107

106108
La matière est bien trop vaste pour revoir tous les concepts du premier cours en un seul tutoriel (il est déjà très conséquent). Une synthèse des éléments principaux est faite ici afin de vous donner une idée de votre niveau aujourd'hui. N'hésitez pas à réviser les parties du cours 1, si cela s'avère nécessaire.
107109

108110
## Logiciels
109111

110-
Commencez par vous assurer que vous maîtrisez les outils logiciels que nous allons employer dans le cadre de ce cours. Si vous avez des doutes à ce sujet, consultez le premier module de cours de [science des données 1](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2024/outils.html). Répondez aux questions ci-dessous.
112+
Commencez par vous assurer que vous maîtrisez les outils logiciels que nous allons employer dans le cadre de ce cours. Si vous avez des doutes à ce sujet, consultez le premier module de cours de [science des données 1](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2025/outils.html). Répondez aux questions ci-dessous.
111113

112114
```{r qu_intro}
113115
quiz(
@@ -160,7 +162,7 @@ quiz(
160162

161163
## Git et GitHub
162164

163-
Au cours de Science des données, nous utilisons abondamment Git et GitHub. Assurez-vous d'avoir bien retenu la terminologie spécifique associée à ces outils de gestion de version. La terminologie est présentée dans les deux premiers modules du cours de [science des données 1](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2024/outils.html).
165+
Au cours de Science des données, nous utilisons abondamment Git et GitHub. Assurez-vous d'avoir bien retenu la terminologie spécifique associée à ces outils de gestion de version. La terminologie est présentée dans les deux premiers modules du cours de [science des données 1](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2025/outils.html).
164166

165167
### Situation 1
166168

@@ -295,7 +297,7 @@ grade_code("Voilà effectivement un exercice simple clôturé grâce à `Submit
295297
question("Sélectionnez parmi les propositions suivantes les packages chargés avec l'instruction `SciViews::R()`",
296298
answer("chart", correct = TRUE),
297299
answer("tidyverse"),
298-
answer("data.table", correct = TRUE),
300+
answer("data.trame", correct = TRUE),
299301
answer("data.io", correct = TRUE),
300302
answer("collapse", correct = TRUE),
301303
allow_retry = TRUE, random_answer_order = TRUE,
@@ -349,7 +351,7 @@ grade_code("Vous venez d'importer un tableau de données",
349351

350352
![](images/breaking_news.jpg){width="30%"}
351353

352-
Dans la SciViews Box 2024, vous avez maintenant un nouvel "addin" dans RStudio, nommé **"Help"**.
354+
Dans la SciViews Box 2025, vous avez maintenant un nouvel "addin" dans RStudio, nommé **"Help"**.
353355

354356
![](images/addin_help.png)
355357

@@ -359,15 +361,15 @@ Il donne accès à diverses pages d'aides sur les fonctions R, le code, les mess
359361

360362
**Le chatbot SciViews ne connait que les fonctions et la syntaxe R de base ou tidyverse. Il ne connait pas le dialecte SciViews-R. Mais dans les exercices, nous vous demandons d'utiliser ce dernier sous peine de pénalité dans les exercices. Il vous faudra donc convertir le code renvoyé par ce chatbot, ou n'importe quel autre moteur LLM en code SciViews-R.** Ceci à titre didactique pour bien montrer que vous *comprenez* votre code et que vous ne copiez-collez pas "bêtement" un résultat renvoyé par un moteur LLM (bien entendu, hors de ce cours, vous êtes libre d'utiliser la syntaxe R qui vous plait). Dans la suite de ce tutoriel learnr, nous allons revenir sur les spécificités du dialecte SciViews-R pour vous rafraîchir la mémoire à ce sujet.
361363

362-
Le package {tabularise} est disponible dans la SciViews Box 2024. Ce package a une fonction centrale que vous devez retenir `tabularise()`. Elle permet d'obtenir des tableaux bien formatés pouvant être ajoutés à vos carnets de notes et vos rapports. Cette fonction utilise la structure suivante : `tabularise$xxx(objet)`. En fonction du type indiqué dans `xxx` et de la classe de l'objet, vous obtiendrez un tableau spécifique. Dans l'exemple ci-dessus, vous avez employé le type `headtail` qui permet d'afficher le début et la fin de votre tableau de données.
364+
Le package {tabularise} est disponible dans la SciViews Box 2025. Ce package a une fonction centrale que vous devez retenir `tabularise()`. Elle permet d'obtenir des tableaux bien formatés pouvant être ajoutés à vos carnets de notes et vos rapports. Cette fonction utilise la structure suivante : `tabularise$xxx(objet)`. En fonction du type indiqué dans `xxx` et de la classe de l'objet, vous obtiendrez un tableau spécifique. Dans l'exemple ci-dessus, vous avez employé le type `headtail` qui permet d'afficher le début et la fin de votre tableau de données.
363365

364366
La fonction `read()` permet d'importer un nombre important de formats de fichiers. Avec l'instruction suivante, vous pouvez retrouver tous les formats supportés par la fonction `read()` (et par son pendant pour exporter vos données, la fonction `write()`).
365367

366368
```{r, echo=TRUE}
367369
data_types(view = FALSE)
368370
```
369371

370-
Analysez l'organisation des fichiers ci-dessous. Le dossier `sharks-GuyliannEngels` contient tous les documents employés pour réaliser une analyse sur le recensement des attaques de requins en Australie. Il s'agit d'un [projet RStudio](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2024/rs.html). Ce projet doit absolument être portable. Il faut donc employer uniquement des **chemins relatifs**. Par exemple, le document `sharks_report.qmd` se trouve dans le dossier `docs`.
372+
Analysez l'organisation des fichiers ci-dessous. Le dossier `sharks-GuyliannEngels` contient tous les documents employés pour réaliser une analyse sur le recensement des attaques de requins en Australie. Il s'agit d'un [projet RStudio](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2025/rs.html). Ce projet doit absolument être portable. Il faut donc employer uniquement des **chemins relatifs**. Par exemple, le document `sharks_report.qmd` se trouve dans le dossier `docs`.
371373

372374
/home
373375
/sv
@@ -410,7 +412,7 @@ quiz(
410412
)
411413
```
412414

413-
La [section 4.1 du cours de SDD I](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2024/importation-des-donn%25C3%25A9es.html) traite de l'importation des données dans R. Relisez cette dernière au besoin.
415+
La [section 4.1 du cours de SDD I](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2025/importation.html) traite de l'importation des données dans R. Relisez cette dernière au besoin.
414416

415417
- Rappel concernant les types de fichiers : les blocs-notes et les rapports sont rédigés sous forme de documents **[Quarto](https://quarto.org)** (certains peuvent néanmoins être au format R Markdown). L'extension de fichier est `.qmd` (contre `.Rmd` pour R Markdown). Il y a relativement peu de différences dans l'utilisation de ces deux formats, à part dans l'entête YAML. Cet entête étant en grande partie prérédigé pour vous dans les projets, ce n'est pas un problème !
416418

@@ -420,7 +422,7 @@ La [section 4.1 du cours de SDD I](https://wp.sciviews.org/sdd-umons/?iframe=wp.
420422

421423
Voici par exemple un tableau de l'analyse de variance avec `tabularise` :
422424

423-
```{r, echo=TRUE}
425+
```{r, echo=TRUE, warning=FALSE}
424426
SciViews::R("model") # La section 'model' est nécessaire pour les extensions ANOVA
425427
# Préparation des données
426428
tg <- read("ToothGrowth", package = "datasets")
@@ -433,7 +435,7 @@ tabularise(tg_anova, lang = "fr")
433435

434436
## Visualisation des données
435437

436-
Les graphiques dans R peuvent être de différents types : des graphiques R de base, {lattice} ou {ggplot2}. Une comparaison des moteurs graphiques est réalisée dans la [section 3.5 du cours de SDD I](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2024/diff%25C3%25A9rents-moteurs-graphiques.html). Dans SciViews-R, nous vous proposons d'employer la fonction `chart()` qui permet de réaliser des graphiques avec l'un de ces trois moteurs. Cependant, par défaut, il s'agit de graphiques {ggplot2} auxquels nous ajoutons une série de couches avec l'opérateur `+`.
438+
Les graphiques dans R peuvent être de différents types : des graphiques R de base, {lattice} ou {ggplot2}. Une comparaison des moteurs graphiques est réalisée dans la [section 3.5 du cours de SDD I](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2025/moteursgraphiques.html). Dans SciViews-R, nous vous proposons d'employer la fonction `chart()` qui permet de réaliser des graphiques avec l'un de ces trois moteurs. Cependant, par défaut, il s'agit de graphiques {ggplot2} auxquels nous ajoutons une série de couches avec l'opérateur `+`.
437439

438440
```{r, echo=TRUE}
439441
# Importation des données
@@ -537,7 +539,7 @@ Les modules 1 à 3 du cours [SDD I](https://wp.sciviews.org/sdd-umons) traitent
537539

538540
Le remaniement de données est tout un art que vous devez maîtriser à la perfection. Vous devez être capable de détecter les valeurs manquantes, de filtrer des observations, de sélectionner des colonnes d'intérêt, de calculer de nouvelles variables, etc.
539541

540-
Dans la SciViews Box 2024, l'utilisation des **data.frame**s, **data.table**s et **tibble**s, trois objets très similaires pour représenter un jeu de données, est simplifiée par rapport aux versions antérieures. Dans la box 2022, avec les **data.table**s et les fonctions **tidy** comme `mutate()`, `select()`, etc., vous étiez confrontés à des difficultés liées l'utilisation automatique de "lazy data" : les calculs ne se faisaient pas directement. Ils devaient parfois être **"collectés"** à l'aide de `collect_dtx()` ou de l'assignation alternative `%<-%` ou `%->%`. Ces difficultés vous ont joué bien des tours. Dans les box 2023 et 2024, *cela n'est plus nécessaire*, et même sans `collect_dtx()` ou avec l'assignation classique `<-`, vous obtenez toujours un **data.table**.
542+
Dans la SciViews Box 2025, l'utilisation des **data.frame**s, **data.table**s et **tibble**s, trois objets très similaires pour représenter un jeu de données, est simplifiée par rapport aux versions antérieures. Dans la box 2022, avec les **data.table**s et les fonctions **tidy** comme `mutate()`, `select()`, etc., vous étiez confrontés à des difficultés liées l'utilisation automatique de "lazy data" : les calculs ne se faisaient pas directement. Ils devaient parfois être **"collectés"** à l'aide de `collect_dtx()` ou de l'assignation alternative `%<-%` ou `%->%`. Ces difficultés vous ont joué bien des tours. Depuis la box 2023, *cela n'est plus nécessaire*, et même sans `collect_dtx()` ou avec l'assignation classique `<-`, vous obtenez toujours un **data.table**.
541543

542544
Voici un petit exercice de remaniement de données pour vous rafraîchir l'esprit... Vous allez vous intéresser au rendement de deux variétés de pommes de terre : la bintje et la fontane. Après 110 jours de culture, des prélèvements sont effectués dans différentes parcelles en Belgique. La production, exprimée en tonnes par hectare, est ainsi quantifiée pour les deux variétés de pommes de terre. Cet exercice utilise des données générées artificiellement, mais qui s'inspirent des observations relayées sur le site du sillon belge d'un [article consulté le 3 septembre 2019](https://www.sillonbelge.be/4731/article/2019-08-28/bintje-et-fontane-apres-110-115-jours-faute-de-casser-la-baraque-ces-deux).
543545

@@ -592,41 +594,41 @@ En résumé, on retrouve un équivalent aux cinq fonctions "tidy" principales po
592594
potatoes1 <- sselect(potatoes, yield, cultivar)
593595
```
594596

595-
Le pipe natif `|>` est apparu dans la version 4.1.0 de R. Vous connaissez déjà deux pipes que sont le pipe de {magrittr} `%>%` ou le pipe de {svFlow} `%>.%` dans SciViews-R. Ces trois opérateurs permettent de chaîner des instructions afin de montrer de manière claire la suite des opérations. Les pipes améliorent grandement la lisibilité du code. Notez que le pipe `|>` ne requiert pas l'utilisation du `.` dans la fonction qui le suit alors que le pipe `%>.%` l'impose. Il est appelé **pipe explicite** pour cette raison. Vous pouvez retrouver de plus amples informations sur le chaînage des instructions dans la [section 4.5 de SDD I](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2024/cha%25C3%25AEnage-des-instructions.html).
597+
Le pipe natif `|>` est apparu dans la version 4.1.0 de R. Vous connaissez déjà deux pipes que sont le pipe de {magrittr} `%>%` ou le pipe de {svFlow} `%>.%` dans SciViews-R. Ces trois opérateurs permettent de chaîner des instructions afin de montrer de manière claire la suite des opérations. Les pipes améliorent grandement la lisibilité du code. Notez que le pipe `|>` ne requiert pas l'utilisation du `.` dans la fonction qui le suit alors que le pipe `%>.%` l'impose. Il est appelé **pipe explicite** pour cette raison. Vous pouvez retrouver de plus amples informations sur le chaînage des instructions dans la [section 4.5 de SDD I](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2025/chainage.html).
596598

597599
*Nous vous proposons de continuer à utiliser le pipe `%>.%` de SciViews-R lors de vos remaniements de données.*
598600

599601
Passons à la pratique. Sélectionnez les parcelles ayant un rendement strictement supérieur à 30 tonnes par hectare et inférieur ou égal à 41 tonnes par hectare. Utilisez une fonction "speedy" pour ce faire. Pour rappel, le tableau de données se nomme `potatoes`. Ce tableau est constitué des variables suivantes :
600602

601603
`r paste0("<code>", names(potatoes), "</code>")`
602604

603-
```{r filter_h3, exercise=TRUE, eval=FALSE}
605+
```{r filter_h3, exercise=TRUE, eval=FALSE, warning=FALSE}
604606
# Réduction du tableau
605607
potatoes_red <- ___(potatoes, ___ ___ ___ & ___ <= 41)
606608
tabularise(potatoes_red)
607609
```
608610

609-
```{r filter_h3-hint-1, eval=FALSE}
611+
```{r filter_h3-hint-1, eval=FALSE, warning=FALSE}
610612
# Réduction du tableau
611613
potatoes_red <- sfilter(potatoes, ___ ___ ___ & ___ <= 41)
612614
tabularise(potatoes_red)
613615
```
614616

615-
```{r filter_h3-hint-2, eval=FALSE}
617+
```{r filter_h3-hint-2, eval=FALSE, warning=FALSE}
616618
# Réduction du tableau
617619
potatoes_red <- sfilter(potatoes, ___ ___ ___ & yield <= 41)
618620
tabularise(potatoes_red)
619621
#### ATTENTION: Hint suivant = solution !####
620622
```
621623

622-
```{r filter_h3-solution}
624+
```{r filter_h3-solution, warning=FALSE}
623625
## Solution ##
624626
# Réduction du tableau
625627
potatoes_red <- sfilter(potatoes, yield > 30 & yield <= 41)
626628
tabularise(potatoes_red)
627629
```
628630

629-
```{r filter_h3-check}
631+
```{r filter_h3-check, warning=FALSE}
630632
grade_code("Vous avez employé correctement la fonction sfilter().", "Il semble que vous avez commis une erreur. n'hésitez pas à revoir la section 4.4.2 de SDD I.")
631633
```
632634

@@ -727,21 +729,21 @@ bull_red %>.%
727729

728730
Vous noterez que les centres d'insémination ont plus d'individus de la variété viande que mixte. Réalisez un test *t* de Student bilatéral avec un seuil $\alpha$ de 0.05 et considérant que les variances sont potentiellement inégales pour comparer la masse standardisée en fonction de la variété.
729731

730-
```{r qu_student_h3, exercise=TRUE, exercise.lines=5, eval=FALSE}
732+
```{r qu_student_h3, exercise=TRUE, exercise.lines=5, eval=FALSE, warning=FALSE}
731733
bull_t <- t.test(data = ___, ___ ~ ___,
732734
alternative = ___, conf.level = ___, var.equal = ___)
733735
# Affichage du résultat sous la forme d'un tableau
734736
tabularise(bull_t)
735737
```
736738

737-
```{r qu_student_h3-hint-1, eval=FALSE}
739+
```{r qu_student_h3-hint-1, eval=FALSE, warning=FALSE}
738740
bull_t <- t.test(data = ___, ___ ~ ___,
739741
alternative = "two.sided", conf.level = 0.95, var.equal = ___)
740742
# Affichage du résultat sous la forme d'un tableau
741743
tabularise(bull_t)
742744
```
743745

744-
```{r qu_student_h3-hint-2, eval=FALSE}
746+
```{r qu_student_h3-hint-2, eval=FALSE, warning=FALSE}
745747
bull_t <- t.test(data = ___, ___ ~ ___,
746748
alternative = "two.sided", conf.level = 0.95, var.equal = FALSE)
747749
# Affichage du résultat sous la forme d'un tableau
@@ -750,15 +752,15 @@ tabularise(bull_t)
750752
#### ATTENTION: Hint suivant = solution !####
751753
```
752754

753-
```{r qu_student_h3-solution}
755+
```{r qu_student_h3-solution, warning=FALSE}
754756
## Solution ##
755757
bull_t <- t.test(data = bull_red, weight_std ~ variety,
756758
alternative = "two.sided", conf.level = 0.95, var.equal = FALSE)
757759
# Affichage du résultat sous la forme d'un tableau
758760
tabularise(bull_t)
759761
```
760762

761-
```{r qu_student_h3-check}
763+
```{r qu_student_h3-check, warning=FALSE}
762764
grade_code("Vous savez correctement réalisé le test *t* de Student.")
763765
```
764766

0 commit comments

Comments
 (0)