library(tibble)
library(knitr)
lots <- tibble(lot_id = c("A", "B", "C", "D"), code = c("001", "001", "002", "003"),
quantite = c(10, 20, 5, NA))
consignes <- tibble(version = c("v1", "v1", "v2", "v2", "v2"),
code = c("001", "003", "001", "002", "003"), consigne = c(0.10, 0.25, 0.20, 0.05, 0.40))Entraînement avant le défi 2
Consignes de recyclage fictives : versions, clés et valeurs manquantes
Exemple distinct et fictif
Un commerce fictif reçoit quatre lots. Une liste fictive fixe une consigne (montant remboursable) en dollars par unité pour certains produits; elle a deux versions. Un produit absent d’une version n’est pas consigné dans cette version : consigne de 0 $. Une quantité inconnue reste inconnue. Dans cet exemple, D est présent dans les deux versions avec une quantité à confirmer.
| lot_id | code | quantite |
|---|---|---|
| A | 001 | 10 |
| B | 001 | 20 |
| C | 002 | 5 |
| D | 003 | NA |
| version | code | consigne |
|---|---|---|
| v1 | 001 | 0.10 |
| v1 | 003 | 0.25 |
| v2 | 001 | 0.20 |
| v2 | 002 | 0.05 |
| v2 | 003 | 0.40 |
À faire
- Donner la clé de chaque table. Pourquoi A et B restent-ils deux lots?
- Construire une ligne par lot avec la consigne totale en v1 et en v2, sans prendre une consigne dans l’autre version. Un produit absent d’une version donne 0 $; la quantité inconnue de D donne un montant inconnu.
- Exécuter
lots |> dplyr::left_join(consignes, by = "code"). Combien de lignes obtenez-vous, et pourquoi? Que se passerait-il si l’on additionnait ensuite par lot? - Calculer la variation totale entre v1 et v2 pour les lots de quantité connue, et vérifier un montant à la main.
- Écrire deux contrôles avec
stopifnot(): clé unique deconsignespar version et code, une ligne par lot dans votre résultat. - Faire une figure où un montant de 0 $ et un montant inconnu se distinguent, puis un court rapport HTML avec
embed-resources: trueet une valeur calculée en ligne.
Pour vous préparer à l’entretien : avec votre code visible, prévoyez l’effet d’un passage de la consigne v2 du code 001 de 0,20 $ à 0,30 $, puis vérifiez votre prévision dans une copie.