cassionAnalyse de données

Exercice · Débutant

Le regroupement qui traîne

Quatre chaînes dplyr, chacune renvoyant un chiffre plausible qui répond à une autre question que celle posée. Trouvez le regroupement résiduel, dites ce que chacune calcule réellement, et réécrivez-la.

R40 min

Aucune de ces chaînes ne lève d’erreur. Chacune renvoie un tableau aux bons noms de colonnes et à des chiffres d’ordre de grandeur plausible. Trois d’entre elles répondent à une autre question que celle du commentaire au-dessus.

Le fichier

muac-screening-artibonite-2024.v1.csv — 4 218 enregistrements de dépistage de douze communes de l’Artibonite, en Haïti. Synthétique, et de la même forme que le fichier réel.

Les chaînes

# 1. Quelle part des depistages du district chaque commune-mois a-t-elle fournie ?
muac |>
  group_by(commune, month) |>
  summarise(n = n()) |>
  mutate(share = n / sum(n))
# 2. Les cinq commune-mois aux plus nombreux depistages, a l'echelle du district.
muac |>
  group_by(commune, month) |>
  summarise(n = n()) |>
  slice_max(n, n = 5)
# 3. Le PB moyen du district.
muac |>
  group_by(commune) |>
  summarise(mean_muac = mean(muac_mm))
# 4. Combien d'enfants ont ete depistes dans chaque commune, y compris ceux dont
#    la commune n'a pas ete saisie ?
muac |>
  filter(!is.na(commune)) |>
  count(commune)

La tâche

Pour chaque chaîne :

  1. Dites ce qu’elle calcule réellement, en une phrase. Soyez précis — « la part au sein de quelque chose » n’est pas une réponse ; nommez ce quelque chose.
  2. Montrez la preuve. dplyr::group_vars() et class() sur le résultat intermédiaire trancheront trois cas sur quatre sans qu’il faille raisonner.
  3. Réécrivez-la pour qu’elle réponde à la question du commentaire.

Les questions à traiter en prose

Trois phrases chacune.

1. Deux de ces défauts ont la même cause. Nommez-la, et expliquez pourquoi le message de summarise() passe facilement inaperçu dans un script qui produit vingt tableaux.

2. La chaîne 3 renvoie NA pour au moins une commune. Expliquez pourquoi R agit ainsi plutôt que d’ignorer les valeurs manquantes, et dites ce que na.rm = TRUE ferait au dénominateur — pas seulement au numérateur.

3. Le filtre de la chaîne 4 semble répondre à la question et fait l’inverse. Que conclurait un lecteur du tableau obtenu quant au nombre d’enfants dépistés, et quelle est la plus petite modification qui corrige cela ?

Ce qu’il faut rendre

Un seul script R qui s’exécute de haut en bas et affiche, pour chaque chaîne, le résultat d’origine, le diagnostic et le résultat corrigé.

Comment savoir que c’est terminé

Chaque chaîne corrigée emploie soit .groups = "drop", soit .by =, et aucune ne repose sur un regroupement qui survit à l’appel. Si votre script contient un chemin commençant par /Users ou C:, ou un setwd(), ce n’est pas terminé — voir la leçon 1.