|
| 1 | +--- |
| 2 | +title: "Module 5 : vérification des compétences" |
| 3 | +subtitle: "Traitement des données I" |
| 4 | +author: "Guyliann Engels & Philippe Grosjean" |
| 5 | +output: |
| 6 | + learnr::tutorial: |
| 7 | + progressive: true |
| 8 | +tutorial: |
| 9 | + id: "sdd1.05a" |
| 10 | + version: 1.0.0 |
| 11 | +runtime: shiny_prerendered |
| 12 | +--- |
| 13 | + |
| 14 | +```{r setup, include=FALSE} |
| 15 | +library(learnr) |
| 16 | +library(knitr) |
| 17 | +SciViews::R() |
| 18 | +
|
| 19 | +options(tutorial.event_recorder = BioDataScience::record_sdd) |
| 20 | +tutorial_options(exercise.checker = BioDataScience::checker_sdd) |
| 21 | +tutorial_options(exercise.timelimit = 60) |
| 22 | +tutorial_options(exercise.cap = "Code R") |
| 23 | +knitr::opts_chunk$set(echo = FALSE, comment = NA) |
| 24 | +
|
| 25 | +library(BioDataScience) |
| 26 | +library(ggridges) |
| 27 | +
|
| 28 | +# Dataset |
| 29 | +crabs <- read("crabs", package = "MASS", lang = "fr") |
| 30 | +``` |
| 31 | + |
| 32 | +```{r, echo=FALSE} |
| 33 | +fixedRow( |
| 34 | + column(9, div( |
| 35 | + img(src = 'images/BioDataScience-128.png', align = "left"), |
| 36 | + h1("Science des données biologiques"), |
| 37 | + "Réalisé par le service d'Écologie numérique des Milieux aquatiques, Université de Mons (Belgique)" |
| 38 | + )), |
| 39 | + column(3, div( |
| 40 | + textInput("user", "Utilisateur :", ""), |
| 41 | + textInput("email", "Email :", "") |
| 42 | + )) |
| 43 | +) |
| 44 | +textOutput("user") # This is newer shown, but required to trigger an event! |
| 45 | +textOutput("email") # Idem! |
| 46 | +``` |
| 47 | + |
| 48 | +```{r, context="server"} |
| 49 | +output$user <- renderText({BioDataScience::user_name(input$user);""}) |
| 50 | +output$email <- renderText({BioDataScience::user_email(input$email);""}) |
| 51 | +updateTextInput(session, "user", value = BioDataScience::user_name()) |
| 52 | +updateTextInput(session, "email", value = BioDataScience::user_email()) |
| 53 | +``` |
| 54 | + |
| 55 | + |
| 56 | +## Préambule |
| 57 | + |
| 58 | +Si vous n'avez jamais utilisé de tutoriel "learnr", familiarisez-vous d'abord avec son interface [ici](http://biodatascience-course.sciviews.org/sdd-umons/learnr.html). |
| 59 | + |
| 60 | + |
| 61 | + |
| 62 | +> Conformément au RGPD ([Règlement Général sur la Protection des Données](https://ec.europa.eu/info/law/law-topic/data-protection/reform/rules-business-and-organisations/principles-gdpr_fr)), nous sommes tenus de vous informer de ce que vos résultats seront collecté afin de suivre votre progression. **Les données seront enregistrées au nom de l'utilisateur apparaissant en haut de cette page. Corrigez si nécessaire !** En utilisant ce tutoriel, vous marquez expressément votre accord pour que ces données puissent être collectées par vos enseignants et utilisées pour vous aider et vous évaluer. Après avoir été anonymisées, ces données pourront également servir à des études globales dans un cadre scientifique et/ou éducatif uniquement. |
| 63 | +
|
| 64 | + |
| 65 | +## Objectifs |
| 66 | + |
| 67 | +- Vérifier l'acquisition des notions relatives aux remaniement des données avec les fonctions select(), filter(), mutate(), group_by(), summarise() |
| 68 | +- Vérifier l'acquisition des données relatives aux chainages des intructions |
| 69 | + |
| 70 | + |
| 71 | +## Remaniement des donnés & chainage |
| 72 | + |
| 73 | +Le remaniement des données est indispensable lors d'une analyse de données. Pour ce faire, le jeu de données sur la biométrie des crabes est employé. |
| 74 | + |
| 75 | +```{r} |
| 76 | +# Importation des principaux packages |
| 77 | +SciViews::R |
| 78 | +# Importation des données sur la biométrie des crabes |
| 79 | +(crabs <- read("crabs", package = "MASS", lang = "fr")) |
| 80 | +``` |
| 81 | + |
| 82 | +### Calcule de nouvelles variables |
| 83 | + |
| 84 | +Calculez |
| 85 | + |
| 86 | +- le logarithme de la longueur de la carapace des crabes et nommez cette nouvelle variables **length_log** |
| 87 | +- la racine carrée de la largueur de la carapace et nommez cette nouvelle variable **width_sqrt** |
| 88 | +- Divisez la variable front par 1000 et nommez cette nouvelle variable **front_m** |
| 89 | + |
| 90 | +Affichez ensuite les 6 premières lignes du tableau. |
| 91 | + |
| 92 | +**Nom du jeu de données et des variables importantes** |
| 93 | + |
| 94 | +```{r, echo = TRUE} |
| 95 | +variable <- c("crabs", names(crabs), "log()", "sqrt()", "*", "head()" ) |
| 96 | +sample(variable) |
| 97 | +``` |
| 98 | + |
| 99 | +remarques : l'ensemble des variables ci-dessus ne sont pas à employer dans cet exercice. |
| 100 | + |
| 101 | +Vous devez obtenir le tableau ci-dessous |
| 102 | + |
| 103 | + |
| 104 | +```{r} |
| 105 | +# Mutate |
| 106 | +crabs %>.% mutate(., |
| 107 | + length_log = log(length), |
| 108 | + width_sqrt = sqrt(width), |
| 109 | + front_m = front/1000) -> crabs |
| 110 | +# Visualisation des premières lignes du tableau |
| 111 | +head(crabs) |
| 112 | +``` |
| 113 | + |
| 114 | +```{r mutate, exercise=TRUE} |
| 115 | +
|
| 116 | +``` |
| 117 | + |
| 118 | +```{r mutate-solution} |
| 119 | +# Mutate |
| 120 | +crabs %>.% mutate(., |
| 121 | + length_log = log(length), |
| 122 | + width_sqrt = sqrt(width), |
| 123 | + front_m = front/1000) -> crabs |
| 124 | +# Visualisation des premières lignes du tableau |
| 125 | +head(crabs) |
| 126 | +``` |
| 127 | + |
| 128 | +```{r mutate-check} |
| 129 | +# Not yet... |
| 130 | +``` |
| 131 | + |
| 132 | +### Filtre et sélection de données |
| 133 | + |
| 134 | +Reprennons le jeu de données initial sur la biométrie des crabes |
| 135 | + |
| 136 | +```{r} |
| 137 | +# Importation des données sur la biométrie des crabes |
| 138 | +(crabs <- read("crabs", package = "MASS", lang = "fr")) |
| 139 | +``` |
| 140 | + |
| 141 | +Réalisez les opérations suivantes |
| 142 | + |
| 143 | +- Retirer la variable index du jeu de données |
| 144 | +- Garder uniquement les individus mâles du jeu de données dont la longeur de la carapace est supérieur à 25 mm |
| 145 | +- Affichez ensuite les 6 premières lignes du tableau |
| 146 | + |
| 147 | +Employez le chainage pour résoudre cette exercice. |
| 148 | + |
| 149 | +**Nom du jeu de données et des variables importantes** |
| 150 | + |
| 151 | +```{r, echo = TRUE} |
| 152 | +variable <- c("crabs", names(crabs), "filter", "select", "head" ) |
| 153 | +sample(variable) |
| 154 | +``` |
| 155 | + |
| 156 | +remarques : l'ensemble des variables ci-dessus ne sont pas à employer dans cet exercice. |
| 157 | + |
| 158 | +Vous devez obtenir le tableau ci-dessous |
| 159 | + |
| 160 | +```{r} |
| 161 | +crabs %>.% |
| 162 | + select(., - index) %>.% |
| 163 | + filter(., sex == "M" & length >= 25) %>.% |
| 164 | + head(.) |
| 165 | +``` |
| 166 | + |
| 167 | + |
| 168 | +```{r pipe1, exercise=TRUE} |
| 169 | +
|
| 170 | +``` |
| 171 | + |
| 172 | +```{r pipe1-solution} |
| 173 | +crabs %>.% |
| 174 | + select(., - index) %>.% |
| 175 | + filter(., sex == "M" & length >= 25) %>.% |
| 176 | + head(.) |
| 177 | +``` |
| 178 | + |
| 179 | +```{r pipe1-check} |
| 180 | +# Not yet... |
| 181 | +``` |
| 182 | + |
| 183 | +### Résumé des données |
| 184 | + |
| 185 | +Reprennons le jeu de données initial sur la biométrie de crabes |
| 186 | + |
| 187 | +```{r} |
| 188 | +# Importation des données sur la biométrie des crabes |
| 189 | +(crabs <- read("crabs", package = "MASS", lang = "fr")) |
| 190 | +``` |
| 191 | + |
| 192 | +Réalisez les opérations suivantes |
| 193 | + |
| 194 | +- Sélectionnez les individus dont la longueur est strictement supérieur à 25 mm |
| 195 | +- Résumez le jeu de données par le sex et par la variété de *Leptograpsus variegatus* |
| 196 | + + Calculez la moyenne de la largeur des carapaces par groupe |
| 197 | + + Dénombrez les individus par groupe |
| 198 | +- Formatez votre tableau avec la fonction kable() |
| 199 | + |
| 200 | +Employez le chainage pour résoudre cette exercice. |
| 201 | + |
| 202 | +**Nom du jeu de données et des variables importantes** |
| 203 | + |
| 204 | +```{r, echo = TRUE} |
| 205 | +variable <- c("crabs", names(crabs), "n()", "mean()", "kable()", "group_by()", "filter()" ) |
| 206 | +sample(variable) |
| 207 | +``` |
| 208 | + |
| 209 | +remarques : l'ensemble des variables ci-dessus ne sont pas à employer dans cet exercice. |
| 210 | + |
| 211 | +Vous devez obtenir le tableau ci-dessous |
| 212 | + |
| 213 | +```{r} |
| 214 | +crabs %>.% |
| 215 | + filter(., length > 25) %>.% |
| 216 | + group_by(., species, sex) %>.% |
| 217 | + summarise(., mean = mean(width), number = n()) %>.% |
| 218 | + knitr::kable(.) |
| 219 | +``` |
| 220 | + |
| 221 | +```{r pipe2, exercise=TRUE} |
| 222 | +library(knitr) |
| 223 | +
|
| 224 | +``` |
| 225 | + |
| 226 | +```{r pipe2-solution} |
| 227 | +crabs %>.% |
| 228 | + filter(., length > 25) %>.% |
| 229 | + group_by(., species) %>.% |
| 230 | + summarise(., mean = mean(width), number = n()) %>.% |
| 231 | + knitr::kable(.) |
| 232 | +``` |
| 233 | + |
| 234 | +```{r pipe2-check} |
| 235 | +# Not yet... |
| 236 | +``` |
| 237 | + |
| 238 | +## Conclusion |
| 239 | + |
| 240 | +Bravo! Vous venez de terminer votre séance d'exercices dans un tutoriel "learnr". |
| 241 | + |
| 242 | +Laissez nous vos impressions sur cet outil pédagogique ou expérimentez encore dans la zone ci-dessous. Rappelez-vous que pour placer un commentaire dans une zone de code R, vous devez utilisez un dièse (`#`) devant vos phrases. |
| 243 | + |
| 244 | +```{r comm, exercise=TRUE, exercise.lines = 8} |
| 245 | +# Ajout de commentaires |
| 246 | +# ... |
| 247 | +``` |
| 248 | + |
| 249 | +```{r comm-check} |
| 250 | +# Not yet... |
| 251 | +``` |
| 252 | + |
0 commit comments