Skip to content

Commit f84ceeb

Browse files
committed
Learnrs A02 activated + correction in A02Sa_limits
1 parent 7a95b29 commit f84ceeb

File tree

6 files changed

+108
-108
lines changed

6 files changed

+108
-108
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: 2023.1.0
2+
Version: 2023.2.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 2023.2.0
2+
3+
- Learnrs A02La_base, A02Lb_progression and A02Lc_scatterplot ready.
4+
15
# BioDataScience1 2023.1.0
26

37
- Learnrs A00La_discovery, A01La_tools and A01Lb_git ready.

inst/shiny/A02Sa_limits/app.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ server <- function(input, output, session) {
4848
trackEvents(session, input, output,
4949
sign_in.fun = BioDataScience::sign_in, config = conf)
5050
trackSubmit(session, input, output, max_score = 2, solution =
51-
list(limits_x = c(0, 100), limits_y = c(0, 40)),
51+
list(limits_x = c(0, 110), limits_y = c(0, 40)),
5252
comment = "Choix des limits de x et y",
5353
message.success = "Correct, vous avez sélectionné les limites les plus adaptées",
5454
message.error = "Incorrect, de meilleures limites existent.")

inst/tutorials/A02La_base/A02La_base.Rmd.inactive renamed to inst/tutorials/A02La_base/A02La_base.Rmd

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ BioDataScience1::learnr_server(input, output, session)
2929

3030
## Objectif
3131

32-
Dans le premier module, vous avez découvert plusieurs logiciels que vous allez employer dans les cours des sciences des données. Vous avez réalisé un premier projet qui comprenait, entre autres, des instructions R. Vous avez en fait utilisé le langage R afin de réaliser des tableaux et des graphiques dans un carnet de notes au format R Markdown. Ce tutoriel a pour objectif de vous permettre de découvrir les bases du langage R.
32+
Dans le premier module, vous avez découvert plusieurs logiciels que vous allez employer dans les cours des sciences des données. Vous avez réalisé un premier projet qui comprenait, entre autres, des instructions R. Vous avez en fait utilisé le langage R afin de réaliser des tableaux et des graphiques dans un carnet de notes au format Quarto. Ce tutoriel a pour objectif de vous permettre de découvrir les bases du langage R.
3333

3434
```{r, out.width='50%'}
3535
knitr::include_graphics("images/Rlogo.png")
@@ -41,13 +41,13 @@ Regardez la vidéo ci-dessous.
4141

4242
![](https://www.youtube.com/watch?v=XcBLEVknqvY)
4343

44-
[R](https://www.r-project.org/about.html) est un logiciel **open source** centré sur l'analyse de données. Le langage de programmation R qu'il implémente est mature et développé depuis 1993. Il prend ses sources dans le langage S (spécialement conçu pour les statistiques dans les années 1970). R permet entre autres la manipulation, la visualisation et l'application de calculs statistiques sur des données. C'est l'un des environnements les plus utilisés et les plus puissants pour l'analyse des données. Python est un autre langage très utilisé en science des données, mais il est moins facile à aborder pour un non-informaticien. Donc, étudier R sera un **investissement clé** pour votre future carrière de biologiste, car des données, vous en aurez tous à analyser dans votre travail !
44+
[R](https://www.r-project.org/about.html) est un logiciel **open source** (ce qui signifie que le code source du logiciel est disponible sous une licence permissive) centré sur l'analyse de données. Le langage de programmation R qu'il implémente est mature et développé depuis 1993. Il prend ses sources dans le langage S (spécialement conçu pour les statistiques dans les années 1970). R permet, entre autres, la manipulation, la visualisation et l'application de calculs statistiques sur des données. C'est l'un des environnements les plus utilisés et les plus puissants pour l'analyse des données. Python est un autre langage très utilisé en science des données, mais il est moins facile à aborder pour un non-informaticien. Donc, étudier R sera un **investissement clé** pour votre future carrière de biologiste, car des données, vous en aurez tous à analyser dans votre travail !
4545

4646
**Éléments optionnels :** si vous voulez lire une analyse complète et objective (un peu longue, technique et en anglais) qui compare R à d'autres logiciels d'analyse des données, [suivez ce lien](http://r4stats.com/articles/popularity/). [Pourquoi R ?](https://www.infoworld.com/article/2940864/application-development/r-programming-language-statistical-data-analysis.html), un autre point de vue (toujours en anglais).
4747

48-
Ce tutoriel vous propose une suite d'activités afin d'apprendre les rudiments de R.
48+
Ce tutoriel vous propose une suite d'activités pour apprendre les rudiments de R.
4949

50-
## R, une calculette scientifique
50+
## R, une "calculette" scientifique
5151

5252
Vous pouvez tout d'abord employer R comme une calculatrice (ce qui est bien réducteur de la puissance de cet outil). Les opérations de base sont directement utilisables dans R.
5353

@@ -61,7 +61,7 @@ Vous pouvez tout d'abord employer R comme une calculatrice (ce qui est bien réd
6161

6262
**À noter :**
6363

64-
- Les espaces au sein des instructions sont facultatives, mais elles aèrent le code. C'est comme en français : sansespacesonlitnettementmoinsbien! Dans certain cas, il vaut mieux les omettre, comme pour `3^2` qui indique que cette opération est prioritaire sur les autres. `1 - 3^2` signifie `1 - (3^2)`, 3 est d'abord élevé au carré, et puis on soustrait cette valeur à un, et non `(1 - 3)^2`. De même, la multiplication et la division sont prioritaires sur l'addition et la soustraction tout comme en mathématique.
64+
- Les espaces au sein des instructions sont facultatifs, mais ils aèrent le code. C'est comme en français : sansespacesonlitnettementmoinsbien! Dans certains cas, il vaut mieux les omettre, comme pour `3^2` qui indique que cette opération est prioritaire sur les autres. `1 - 3^2` signifie `1 - (3^2)`, 3 est d'abord élevé au carré, et puis on soustrait cette valeur de un, et non `(1 - 3)^2`. De même, la multiplication et la division sont prioritaires sur l'addition et la soustraction tout comme en mathématique.
6565

6666
- R retourne une réponse précédée de `[1]`. Nous verrons plus loin qu'il retourne en réalité un vecteur, même si ce vecteur ne contient qu'un seul élément. Le `[1]` indique la position dans le vecteur.
6767

@@ -75,7 +75,7 @@ Voici un premier exemple d'instruction R tel qu'elle se présente dans les tutor
7575

7676
- Multipliez les nombres `15` et `23` (un encadré **Code R** est une zone où vous pouvez vous-même entrer des instructions R et/ou les modifier. Les numéros à gauche sont les numéros de lignes. Ils ne font pas partie des instructions. Utilisez le bouton **Run Code** pour tester, et ensuite **Submit Answer** quand vous êtes satisfait de votre réponse).
7777

78-
*S'il est présent, le bouton **Solution** permet de visualiser le code qui est demandé. Essayez toujours de résoudre l'exercice par vous-même.* **Si vous visualisez la solution, vous perdez automatiquement la moitié des points pour la question !**
78+
*S'il est présent, le bouton **Solution** permet de visualiser le code qui est demandé. Essayez toujours de résoudre l'exercice par vous-même.* **Attention : si vous visualisez la solution, vous perdez automatiquement la moitié des points pour la question !**
7979

8080
```{r calcul1, exercise=TRUE}
8181
@@ -94,15 +94,15 @@ grade_result(
9494

9595
*Les learnrs font appel partiellement à des outils de correction automatisée. Les messages qu'ils renvoient sont en anglais. Ne soyez donc pas étonnés du mélange anglais/français parfois. Surtout, si le message est sur fond rouge, lisez-le attentivement : il contient des informations utiles pour corriger votre réponse.*
9696

97-
Vous pouvez également utiliser des fonctions mathématiques directement implémentées dans R comme le logarithme népérien avec la **fonction** `log()`. Ce langage a été mis au point pour suivre les conventions des mathématiques et des statistiques comme le respect de l'ordre des opérations.
97+
Vous pouvez également utiliser des fonctions mathématiques directement implémentées dans R comme le logarithme népérien avec la fonction `log()`. Ce langage a été mis au point pour suivre les conventions des mathématiques et des statistiques comme le respect de l'ordre des opérations.
9898

9999
```{r, echo=TRUE}
100100
log(4 + 5)
101101
```
102102

103103
- Calculez l'exponentielle (fonction `exp()`) de `23` moins `15`.
104104

105-
*Le bouton **Hints** propose des aides pour vous guider dans l'exercice. Il se peut que la dernière aide soit la solution (cela sera indiqué dans l'aide précédente afin d'éviter de perdre des points en l'affichant de manière malencontreuse). Toute aide affichée fait perdre 10% de la note pour l'exercice. Encore une fois, essayez d'abord de trouver la réponse par vous-même.*
105+
**Le bouton Hints** propose des aides pour vous guider dans l'exercice. Il se peut que la dernière aide soit la solution (cela sera indiqué dans l'aide précédente afin d'éviter de perdre des points en l'affichant de manière malencontreuse). Toute aide affichée fait perdre 10% de la note pour l'exercice. Encore une fois, essayez d'abord de trouver la réponse par vous-même.
106106

107107
```{r calcul2_h2, exercise=TRUE}
108108
@@ -129,7 +129,7 @@ grade_result(
129129

130130
## Les assignations
131131

132-
Effectuer des calculs, c'est bien... pouvoir sauvegarder et réutiliser les résultats, c'est encore mieux. L'action qui consiste à associer un résultat à un nom s'appelle une **assignation**. L'instruction correspondante dans R symbolise une flèche indiquant le sens de l'assignation (`<-`, soit l'assemblage du signe plus petit que `<` et moins `-`). Par exemple :
132+
Effectuer des calculs, c'est bien... pouvoir sauvegarder et réutiliser les résultats, c'est encore mieux. L'action qui consiste à associer un résultat à un nom s'appelle une **assignation**. L'instruction correspondante dans R symbolise une flèche indiquant le sens de l'assignation (`<-`, soit l'assemblage du signe plus petit que `<` et du signe moins `-`). Par exemple :
133133

134134
```{r assignation, echo=TRUE}
135135
a <- 5
@@ -138,11 +138,13 @@ b <- 4 + 3
138138
a + b # Somme de a et b
139139
```
140140

141-
Notez aussi que tout ce qui suit un dièse (`#`) sur une même ligne dans R est considéré comme un **commentaire**. Ce commentaire n'est pas interprété par le programme. Servez-vous en pour documenter vos instructions !
141+
Notez aussi que tout ce qui suit un dièse (`#`) sur une même ligne dans R est considéré comme un **commentaire**. Ce commentaire n'est pas interprété par le programme. Servez-vous-en pour documenter vos instructions !
142142

143143
**À retenir :**
144144

145-
- Vous pouvez aussi voir et gérer vos objets dans l'onglet "**Environment**" de RStudio lorsque plus tard vous travaillerez dans ce logiciel. ![](images/environnement.png)
145+
- Vous pouvez aussi voir et gérer vos objets dans l'onglet "**Environment**" de RStudio lorsque plus tard vous travaillerez dans ce logiciel.
146+
147+
![](images/environnement.png)
146148

147149
- Les noms reconnus par R doivent commencer par une lettre ou le point `.`, et être suivis de lettres, chiffres, point ou trait souligné `_`.
148150

@@ -155,7 +157,7 @@ Notez aussi que tout ce qui suit un dièse (`#`) sur une même ligne dans R est
155157

156158
- Un nom commençant par un point sera "caché" (non visible dans l'onglet "**Environment**" de RStudio).
157159

158-
- Utilisez des noms courts, mais représentatifs du contenu de l'objet. Si possible, séparez les mots par un trait souligné et utilisez uniquement des lettres minuscules. On a coutume d'utiliser des noms anglais, car cela facilite l'échange de code avec des collègues internationaux (oui, ça vous arrivera... donc, prenez directement de bonnes habitudes).
160+
- Utilisez des noms courts, mais représentatifs du contenu de l'objet. Si possible, séparez les mots par un trait souligné (`_`) et utilisez uniquement des lettres minuscules. On a coutume d'utiliser des noms anglais, car cela facilite l'échange de code avec des collègues internationaux (oui, ça vous arrivera... donc, prenez directement de bonnes habitudes).
159161

160162
- Exemples corrects : `x`, `v1`, `initial_date`, `final_date`, `elapsed_time`.
161163
- Exemples incorrects : `toto`, `Toto2`, `FinalDate`, `fd` or `FD` or `fi_dat` (pour final date), `date_finale`, `laatse_datum`.
@@ -196,10 +198,13 @@ Dans R, et contrairement à une calculatrice de poche, vous pouvez rassembler di
196198

197199
```{r vecteur, echo=TRUE}
198200
v1 <- c(2, 5, 8, 11, 13, 16)
201+
v1
199202
# NA indique une valeur manquante ('not available')
200203
v2 <- c(2, 5, NA, 11, 13, 16)
204+
v2
201205
# Aussi avec des chaînes de caractères (entre guillemets)
202206
v3 <- c("noir", "jaune", "rouge")
207+
v3
203208
```
204209

205210
**Astuce :**
@@ -317,7 +322,7 @@ mean(v4)
317322
grade_code("C'est cela : les fonctions génériques s'utilisent comme les autres, mais faites bien attention aux différentes formes possibles (que l'on appelle les **méthodes** de la fonction) !")
318323
```
319324

320-
Certaines fonctions servent à **résumer** un ensemble de données, c'est-à-dire qu'elles les représentent avec une seule ou un petit nombre de valeurs. Ainsi, quelle que soit la taille du vecteur `v4`, sa moyenne est toujours un nombre unique. Ici, nous avons obtenu `NA`. Nous savons pourquoi. Les valeurs manquantes sont **contaminantes** dans les calculs. Il en suffit d'une seule pour que l'ensemble du résultat soit `NA`. Naturellement dans ce cas, c'est dommage, car la moyenne pourrait être *estimée* sur base des trois autres valeurs connues. L'argument `na.rm` permet de le faire... mais comment le savoir ? En lisant **la page d'aide de la fonction**. Pour cela, utilisez l'instruction `?` suivi du nom de la fonction. Dans RStudio, la page d'aide apparaît dans l'onglet **Help** (copie d'écran ci-dessous).
325+
Certaines fonctions servent à **résumer** un ensemble de données, c'est-à-dire qu'elles les représentent avec une seule ou un petit nombre de valeurs. Ainsi, quelle que soit la taille du vecteur `v4`, sa moyenne est toujours un nombre unique. Ici, nous avons obtenu `NA`. Nous savons pourquoi. Les valeurs manquantes sont **contaminantes** dans les calculs. Il en suffit d'une seule pour que l'ensemble du résultat soit `NA`. Naturellement dans ce cas, c'est dommage, car la moyenne pourrait être *estimée* sur base des trois autres valeurs connues. L'argument `na.rm` permet de le faire... mais comment le savoir ? En lisant **la page d'aide de la fonction**. Pour cela, utilisez l'opérateur `?` suivi du nom de la fonction. Dans RStudio, la page d'aide apparaît dans l'onglet **Aide** ou *Help** (selon que l'interface de RStudio soit en français ou en anglais, voir copie d'écran ci-dessous).
321326

322327
```{r, eval=FALSE, echo=TRUE}
323328
?mean
@@ -359,7 +364,7 @@ Vous obtenez cette fois-ci la réponse souhaitée.
359364
360365
## Fonctions statistiques "fast"
361366

362-
Dans le dialecte `SciViews::R` (qui nécessite donc cette instruction en toute première ligne pour se configurer comme tel), nous utiliserons une famille de fonctions alternatives qui servent à résumer des données, comme le calcul de la moyenne. Ces fonctions statistiques sont appelées "fast" parce qu'elles calculent plus rapidement que les fonctions équivalentes de R de base, mais elles ont aussi d'autres propriétés intéressantes que vous découvrirez plus tard. Ces fonctions portent le même nom que la version plus classique, mais préfixé d'un "f". Ainsi, l'équivalent de `mean()` en fonction statistique "fast" est `fmean()`. Une particularité de ces fonctions est d'inverser la convention pour la valeur par défaut de l'argument `na.rm=` qui vaut ici `TRUE` si non précisé. Ainsi, dans notre exemple de la moyenne de `v4` qui contient une valeur manquante, vous pourrez simplement écrire avec `fmean()` :
367+
Dans le dialecte `SciViews::R` (qui nécessite donc cette instruction en toute première ligne pour se configurer comme tel), nous utiliserons une famille de fonctions alternatives qui servent à résumer des données, comme le calcul de la moyenne. Ces fonctions statistiques sont appelées "fast" parce qu'elles calculent plus rapidement que les fonctions équivalentes de R de base, mais elles ont aussi d'autres propriétés intéressantes que vous découvrirez plus tard. Ces fonctions portent le même nom que la version plus classique, mais préfixée d'un "f". Ainsi, l'équivalent de `mean()` en fonction statistique "fast" est `fmean()`. Une particularité de ces fonctions est d'inverser la convention pour la valeur par défaut de l'argument `na.rm=` qui vaut ici `TRUE` si non précisé. Ainsi, dans notre exemple de la moyenne de `v4` qui contient une valeur manquante, vous pourrez simplement écrire avec `fmean()` :
363368

364369
```{r, echo=TRUE}
365370
SciViews::R # À n'écrire qu'une seule fois en début de script
@@ -382,7 +387,7 @@ Vous pouvez utiliser un appel de fonction partout dans une instruction, à la m
382387
```{r, fun-astuces, echo=TRUE}
383388
x <- 2:5
384389
x_mean <- mean(x)
385-
x_sd <- sd(x) # sd() calcule l'écart type
390+
x_sd <- sd(x) # sd() calcule l'écart type, un autre descripteur statistique
386391
10 - x_mean / x_sd
387392
# Le même calcul avec appel de fonctions incluses
388393
10 - mean(x) / sd(x)
@@ -413,7 +418,7 @@ mean(x) %>.%
413418

414419
- Le chaînage crée une instruction unique qui effectue un calcul plus complexe, décomposé étape par étape.
415420
- On indique un point `.` à la place où le résultat précédent doit être inséré dans la fonction.
416-
- Le chaînage est bien plus lisible que l'imbrication au-delà de deux niveaux. En effet, si vous lisez l'instruction chaîne à voix haute en disant "ensuite" pour `%>.%` cela donne : "je prends la moyenne de `x` ensuite le logarithme, ensuite j'arrondis à trois chiffres derrière la virgule". C'est parfaitement clair, non ?
421+
- Le chaînage est bien plus lisible que l'imbrication au-delà de deux niveaux. En effet, si vous lisez l'instruction chaîne à voix haute en disant "ensuite" pour `%>.%` cela donne : "je prends la moyenne de `x` ensuite le logarithme, ensuite j'arrondis à trois chiffres derrière la virgule". C'est parfaitement clair, non ?
417422

418423
Un petit exercice, maintenant :
419424

@@ -449,7 +454,7 @@ log(x) %>.%
449454
grade_code("C'est exactement cela. Le chaînage des opérations rend le code bien plus lisible.")
450455
```
451456

452-
On retrouve plusieurs opérateur de pipe dans R. Par exemple, l'opérateur de pipe de R de base est `|>`. Il s'utilise de façon similaire, sauf que le membre de gauche est injecté comme premier argument dans la fonction à droite, et il ne faut pas (et même, on ne peut pas) indiquer où le mettre à l'aide du point `.`. Voici, à titre d'illustration, trois fois la même instruction, écrite en imbriquant les fonction, puis avec `%>.%`, et enfin, avec `|>`.
457+
On retrouve plusieurs opérateurs de pipe dans R. Par exemple, l'opérateur de pipe de R de base est `|>`. Il s'utilise de façon similaire, sauf que le membre de gauche est injecté comme premier argument dans la fonction à droite, et il ne faut pas (et même, on ne peut pas) indiquer où le mettre à l'aide du point `.`. Voici, à titre d'illustration, trois fois la même instruction, écrite en imbriquant les fonction, puis avec `%>.%`, et enfin, avec `|>`.
453458

454459
```{r, echo=TRUE}
455460
x <- 1:5
@@ -477,7 +482,7 @@ Durant cette séance, vous avez appris à :
477482
- Manipuler les valeurs manquantes, et les calculs en leur présence
478483
- Imbriquer et chaîner des instructions
479484

480-
**Cela fait beaucoup de notions à apprendre et retenir d'un seul coup.** Mais rassurez-vous, avec la pratique, cela deviendra une habitude. Vous pouvez aussi revenir sur ce tutoriel un peu plus tard pour approfondir votre connaissance des bases du langage R.
485+
**Cela fait beaucoup de notions à apprendre et retenir d'un seul coup.** Mais rassurez-vous, avec la pratique, cela deviendra une habitude. Vous pouvez aussi revenir dans ce tutoriel un peu plus tard pour approfondir votre connaissance des bases du langage R.
481486

482487
**Pour aller plus loin...**
483488

0 commit comments

Comments
 (0)