Skip to content

Commit f5c05b0

Browse files
committed
Learnrs module 8 ready for 2025-2026
1 parent 5ba1a23 commit f5c05b0

File tree

5 files changed

+100
-31
lines changed

5 files changed

+100
-31
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,4 @@
2626
# RSconnect
2727
rsconnect
2828
rsconnect/
29+
.positai

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.7.0
2+
Version: 2025.8.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.8.0
2+
3+
- Learnrs **A08La_ttest** and **A08Lb_ttest_wmw** revised for 2025-2026.
4+
15
# BioDataScience1 2025.7.0
26

37
- Learnrs **A07La_distri2**, **A07Lb_chi2** and **A07Lc_chi2b** revised for 2025-2026.

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

Lines changed: 51 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,38 @@ runtime: shiny_prerendered
1515
```{r setup, include=FALSE}
1616
BioDataScience1::learnr_setup()
1717
SciViews::R("infer", 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+
# infer section
42+
library(distributional)
43+
library(inferit)
44+
# ... more
45+
library(readxl)
46+
library(testthat)
47+
library(equatags)
48+
library(BioDataScience)
49+
library(BioDataScience1)
1850
```
1951

2052
```{r, echo=FALSE}
@@ -35,15 +67,15 @@ BioDataScience1::learnr_server(input, output, session)
3567

3668
## Objectifs
3769

38-
La moyenne est un descripteur statistique très employé pour résumer l'information. Il est très courant de comparer une moyenne à une valeur de référence ou deux moyennes entre elles. Dans votre future carrière scientifique, il sera indispensable de bien maîtriser les subtilités dans l'utilisation de la moyenne. Ce tutoriel vise à :
70+
La moyenne est un descripteur statistique très employé pour résumer l'information. Il est très courant de comparer une moyenne à une valeur de référence ou deux moyennes entre elles. Dans votre future carrière scientifique, il sera indispensable de bien maîtriser les subtilités de l'utilisation de la moyenne. Ce tutoriel vise à :
3971

4072
- Être capable de calculer la moyenne, l'écart-type et la variance dans R
4173

4274
- Réaliser un test *t* de Student dans R
4375

4476
- Comprendre le test *t* de Student et être capable de l'utiliser pour résoudre des questions pratiques en biologie
4577

46-
Vous devez maîtriser le calcul de probabilités ([module 6, section 6.1](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2024/proba.html)) et avoir compris la logique d'un test d'hypothèse telle que nous l'avons développé dans la [section 6.6](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2024/test-de-corr%25C3%25A9lation.html) relatif au test de corrélation. Enfin, vous devez avoir vu la première partie du [module 8](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2024/moyenne.html) avant d'aborder ces exercices d'auto-évaluation de vos acquis.
78+
Vous devez maîtriser le calcul de probabilités ([module 6, section 6.1](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2025/proba.html)) et avoir compris la logique d'un test d'hypothèse telle que nous l'avons développé dans la [section 6.6](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2025/test-de-corr%25C3%25A9lation.html) relatif au test de corrélation. Enfin, vous devez avoir vu la première partie du [module 8](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2025/moyenne.html) avant d'aborder ces exercices d'auto-évaluation de vos acquis.
4779

4880
## Moyenne
4981

@@ -79,7 +111,7 @@ mean(v)
79111
```
80112

81113
```{r mean1_h2-check}
82-
grade_code("La fonction mean() effectue ce calcul. Si des valeurs manquantes (exercice suivant) se trouvent dans le vecteur, il faut prendre une précaution supplémentaire pour obtenir une estimation de la moyenne. Il existe également une fonction similaire qui est plus rapide : la fonction fmean() du package {collapse}.")
114+
grade_code("La fonction `mean()` effectue ce calcul. Si des valeurs manquantes (exercice suivant) se trouvent dans le vecteur, il faut prendre une précaution supplémentaire pour obtenir une estimation de la moyenne. Il existe également une fonction similaire qui est plus rapide : la fonction `fmean()` du package {collapse}.")
83115
```
84116

85117
### Moyenne du vecteur `v2`
@@ -114,7 +146,7 @@ mean(v2, na.rm = TRUE)
114146
```
115147

116148
```{r mean2_h3-check}
117-
grade_code("Retenez que, dans R, avec toute fonction qui a un argument `na.rm =`, si vous indiquez TRUE vous souhaitez d'abord éliminer les valeurs manquantes afin d'estimer le résultat sur les données observées restantes. Prenez l'habitude de consulter la page d'aide de la fonction. En général, l'argument `na.rm =` est par défaut à FALSE. Il existe cependant quelques exceptions comme dans la fonction fmean() de {collapse}.")
149+
grade_code("Retenez que, dans R, avec toute fonction qui a un argument `na.rm =`, si vous indiquez TRUE vous souhaitez d'abord éliminer les valeurs manquantes afin d'estimer le résultat sur les données observées restantes. Prenez l'habitude de consulter la page d'aide de la fonction. En général, l'argument `na.rm =` est par défaut à `FALSE`. Il existe cependant quelques exceptions comme dans la fonction `fmean()` de {collapse}.")
118150
```
119151

120152
### Écart-type
@@ -152,7 +184,7 @@ sd(v3)
152184
```
153185

154186
```{r sd1_h2-check}
155-
grade_code("Écart type se dit \"standard deviation\" en anglais, d'où le nom `sd()` de la fonction en abbrégé. Pour la variance, il s'agit de `var()`. Ces deux fonctions utilisent aussi l'argument `na.rm =` si nécessaire. Comme vous vous en doutez surement, il existe la fonction `fsd()` et `fvar()` dans le package {collapse}.")
187+
grade_code("Écart type se dit \"standard deviation\" en anglais, d'où le nom `sd()` en abbrégé de la fonction. Pour la variance, il s'agit de `var()`. Ces deux fonctions utilisent aussi l'argument `na.rm =` si nécessaire. Comme vous vous en doutez surement, il existe la fonction `fsd()` et `fvar()` dans le package {collapse}.")
156188
```
157189

158190
### Coefficient de variation
@@ -213,7 +245,7 @@ Commencez par remanier les données en sélectionnant les individus ayant strict
213245
# Importation des données
214246
biometry <- read("biometry", package = "BioDataScience")
215247
# Sélection des données
216-
biometry <- sfilter(biometry, age ___ 18 ___ age ___ 30)
248+
biometry <- filter_(biometry, ~age ___ 18 ___ age ___ 30)
217249
# Premières lignes du tableau (pour vérification)
218250
head(biometry)
219251
```
@@ -222,7 +254,7 @@ head(biometry)
222254
# Importation des données
223255
biometry <- read("biometry", package = "BioDataScience")
224256
# Sélection des données
225-
biometry <- sfilter(biometry, age > 18 ___ age ___ 30)
257+
biometry <- filter_(biometry, ~age > 18 ___ age ___ 30)
226258
# Premières lignes du tableau (pour vérification)
227259
head(biometry)
228260
@@ -234,7 +266,7 @@ head(biometry)
234266
# Importation des données
235267
biometry <- read("biometry", package = "BioDataScience")
236268
# Sélection des données
237-
biometry <- sfilter(biometry, age > 18 & age <= 30)
269+
biometry <- filter_(biometry, ~age > 18 & age <= 30)
238270
# Premières lignes du tableau (pour vérification)
239271
head(biometry)
240272
```
@@ -247,42 +279,42 @@ Vous souhaitez déterminer s'il y a une différence significative de l'IMC entre
247279

248280
```{r, echo=TRUE}
249281
biometry %>.%
250-
smutate(., bmi = (weight / (height / 100)^2)) %>.%
282+
mutate_(., bmi = ~(weight / (height / 100)^2)) %>.%
251283
labelise(., label = list(bmi = "IMC"), units = list(bmi = "")) ->
252284
biometry
253285
```
254286

255-
Réalisez maintenant un tableau qui résume la moyenne, l'écart-type et le nombre d'observations pour les hommes et pour les femmes séparément. Employez les fonctions "speedy" commençant par "s" comme `ssummarise()` et "fast" débutant par "f" comme `fvar()`
287+
Réalisez maintenant un tableau qui résume la moyenne, l'écart-type et le nombre d'observations pour les hommes et pour les femmes séparément. Employez les fonctions "svTidy" se terminant par "_" comme `summarise_()` et "fast" débutant par "f" comme `fvar()`
256288

257289
```{r bio-prepare}
258290
biometry <- read("biometry", package = "BioDataScience") %>.%
259-
sfilter(., age > 18 & age <= 30) %>.%
260-
smutate(., bmi = (weight/(height/100)^2)) %>.%
291+
filter_(., ~age > 18 & age <= 30) %>.%
292+
mutate_(., bmi = ~(weight / (height/100)^2)) %>.%
261293
labelise(., label = list(bmi = "IMC"), units = list(bmi = ""))
262294
```
263295

264296
```{r bio_tab_h2, exercise=TRUE, exercise.setup="bio-prepare"}
265297
biometry %>.%
266298
___(., ___) %>.%
267-
ssummarise(.,
299+
summarise_(.,
268300
mean = ___(___), sd = ___(___), n = fn(bmi))
269301
```
270302

271303
```{r bio_tab_h2-hint-1}
272304
biometry %>.%
273-
sgroup_by(., gender) %>.%
274-
ssummarise(.,
275-
mean = ___(___), sd = ___(___), n = fn(bmi))
305+
group_by_(., ~gender) %>.%
306+
summarise_(.,
307+
mean = ___(___), sd = ___(___), n = ~fn(bmi))
276308
277309
#### ATTENTION: Hint suivant = solution !####
278310
```
279311

280312
```{r bio_tab_h2-solution}
281313
## Solution ##
282314
biometry %>.%
283-
sgroup_by(., gender) %>.%
284-
ssummarise(.,
285-
mean = fmean(bmi), sd = fsd(bmi), n = fn(bmi))
315+
group_by_(., ~gender) %>.%
316+
summarise_(.,
317+
mean = ~fmean(bmi), sd = ~fsd(bmi), n = ~fn(bmi))
286318
```
287319

288320
```{r bio_tab_h2-check}

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

Lines changed: 43 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,38 @@ runtime: shiny_prerendered
1515
```{r setup, include=FALSE}
1616
BioDataScience1::learnr_setup()
1717
SciViews::R("infer", 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+
# infer section
42+
library(distributional)
43+
library(inferit)
44+
# ... more
45+
library(readxl)
46+
library(testthat)
47+
library(equatags)
48+
library(BioDataScience)
49+
library(BioDataScience1)
1850
```
1951

2052
```{r, echo=FALSE}
@@ -41,7 +73,7 @@ Le test *t* de Student, ou plutôt les tests de Student puisqu'il en existe plus
4173

4274
- Faire de même pour le test de Wilcoxon-Mann-Whitney, et pouvoir déterminer quand l'utiliser à la place du test *t* de Student
4375

44-
N'entamer ce tutoriel qu'après avoir compris ce qu'est un test *t* de Student et vous être auto-évalué via le learnr **A08La_ttest** intitulé "Moyenne et test t de Student". Vous devez également avoir étudié les différentes variantes du test *t* de Student et leurs homologues non paramétriques de Wilcoxon *alias* Mann-Whitney dans le [module 8, section 8.5](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2024/wilcox.html) du cours.
76+
N'entamer ce tutoriel qu'après avoir compris ce qu'est un test *t* de Student et vous être auto-évalué via le learnr **A08La_ttest** intitulé "Moyenne et test t de Student". Vous devez également avoir étudié les différentes variantes du test *t* de Student et leurs homologues non paramétriques de Wilcoxon *alias* Mann-Whitney dans le [module 8, section 8.5](https://wp.sciviews.org/sdd-umons/?iframe=wp.sciviews.org/sdd-umons-2025/wilcox.html) du cours.
4577

4678
## Efficacité du mCPP sur la perte de poids
4779

@@ -96,33 +128,33 @@ levels(mcpp$treatment)
96128
Réalisez un résumé des données en fonction du traitement administré. Les informations nécessaires dans le contexte sont la moyenne, l'écart type et le nombre de patients pour chaque traitement. Utilisez les éléments ci-dessous pour compléter les instructions R (les éléments peuvent être employé plusieurs fois). Utilisez les fonctions "speedy" et "fast" (commençant par "s" ou "f").
97129

98130
```{r}
99-
variable <- c("mcpp", "treatment", "delta_weight", "sgroup_by",
100-
"ssummarise", "fmean", "fsd", "fn")
131+
variable <- c("mcpp", "treatment", "delta_weight", "group_by_",
132+
"summarise_", "fmean", "fsd", "fn")
101133
sample(variable)
102134
```
103135

104136
```{r mcpp_tab_h2, exercise=TRUE, exercise.setup="prepare_mcpp"}
105137
___ %>.%
106138
___(., ___) %>.%
107139
___(., mean = ___(___),
108-
sd = ___(___), n = fn(___))
140+
sd = ___(___), n = ~fn(___))
109141
```
110142

111143
```{r mcpp_tab_h2-hint-1}
112144
mcpp %>.%
113-
sgroup_by(., ___) %>.%
114-
ssummarise(., mean = ___(___),
115-
sd = ___(___), n = fn(___))
145+
group_by_(., ___) %>.%
146+
summarise_(., mean = ___(___),
147+
sd = ___(___), n = ~fn(___))
116148
117149
#### ATTENTION: Hint suivant = solution !####
118150
```
119151

120152
```{r mcpp_tab_h2-solution}
121153
## Solution ##
122154
mcpp %>.%
123-
sgroup_by(., treatment) %>.%
124-
ssummarise(., mean = fmean(delta_weight),
125-
sd = fsd(delta_weight), n = fn(delta_weight))
155+
group_by_(., ~treatment) %>.%
156+
summarise_(., mean = ~fmean(delta_weight),
157+
sd = ~fsd(delta_weight), n = ~fn(delta_weight))
126158
```
127159

128160
```{r mcpp_tab_h2-check}
@@ -178,7 +210,7 @@ t.test(data = mcpp, delta_weight ~ treatment,
178210
```
179211

180212
```{r mcpp_ttest_h2-check}
181-
grade_code("Vous avez réalisé un test de Welch avec les arguments souhaités.", "Oups, il semble que vous n'avez pas obtenu le bon résultat. Relisez avec attention la question et identifiez les valeurs à indiquer pour chaque argument de la fonction `t.test()`.")
213+
grade_code("Vous avez réalisé la variante de Welch du test de Student avec les arguments souhaités.", "Oups, il semble que vous n'avez pas obtenu le bon résultat. Relisez avec attention la question et identifiez les valeurs à indiquer pour chaque argument de la fonction `t.test()`.")
182214
```
183215

184216
Analysez le résultat du test et répondez aux questions ci-dessous.

0 commit comments

Comments
 (0)