Autodiagnostic des bases de R

Test non noté pour vérifier les bases de R nécessaires avant STT-4230 / STT-6230

La description officielle du cours précise qu’une connaissance minimale de R est nécessaire avant l’inscription. Cet autodiagnostic permet de vérifier ces bases avant la première séance. Il ne vérifie pas Git, GitHub, Quarto ou la structuration d’un projet, qui font partie de la progression du cours.

NoteModalités
  • Durée indicative: 20 minutes pour le questionnaire, puis 10 minutes pour la vérification pratique.
  • Première tentative: sans documentation, sans exécuter le code et sans outil d’IA.
  • Le test n’est pas noté et ne constitue pas une décision d’admission.
  • Les réponses et le résultat restent dans le navigateur. Aucune donnée n’est transmise ni enregistrée.

Les seuils d’interprétation sont des repères pédagogiques propres à ce cours. Ils n’ont pas fait l’objet d’une validation psychométrique. Une réponse exacte peut résulter d’un hasard: la vérification pratique demeure donc importante.

18 questions, 6 domaines

Questionnaire autocorrigé

Répondez à toutes les questions, puis sélectionnez « Calculer mon bilan ». La correction détaillée et les ressources ciblées apparaîtront après le calcul.

0 question répondue sur 18
01

Objets et vecteurs

Question 1 Quel résultat produit ce code?
x <- c(3, 5, 8)
x * 2
Question 2 Quelle valeur est retournée?
x <- c(10, 20, 30)
x[2]
Question 3 Quelle instruction remplace toutes les valeurs négatives de x par 0?
02

Sous-ensembles et valeurs manquantes

Question 4 Quel résultat produit ce code?
is.na(c(2, NA, 5))
Question 5 Quelle valeur est retournée?
mean(c(4, NA, 8), na.rm = TRUE)
Question 6 Quel vecteur logique est retourné?
x <- c(-1, NA, 3)
!is.na(x) & x > 0
03

Tableaux et transformations

Question 7 Quelle valeur est retournée?
donnees <- data.frame(
  station = c("Québec", "Lévis", "Saguenay"),
  temperature = c(18.4, 17.1, 16.8)
)
nrow(donnees)
Question 8 Quelle expression extrait la colonne temperature sous forme de vecteur?
Question 9 Que fait cette chaîne de transformation avec dplyr?
donnees |>
  filter(valeur >= 10) |>
  arrange(desc(valeur))
04

Fonctions et contrôle

Question 10 Quel résultat produit cet appel?
ajouter <- function(x, k = 1) {
  x + k
}

ajouter(c(2, 5), k = 3)
Question 11 Quelle expression classe chaque valeur de x dans un vecteur?
Question 12 Quelle est la valeur finale de total?
total <- 0
for (i in 1:4) {
  total <- total + i
}
05

Scripts, importation et aide

Question 13 Quel appel importe le fichier CSV avec readr en utilisant un chemin relatif?
Question 14 Quelle commande exécute le script R/nettoyage.R?
Question 15 Quelle commande ouvre la page d’aide de la fonction mean()?
06

Lecture d’erreurs et vérification

Question 16 Que signifie principalement le message object 'ventes' not found?
Question 17 La console affiche un symbole + après cette ligne. Quelle est la cause la plus probable?
moyenne <- mean(c(4, 6, 8)
Question 18 Que se passe-t-il lors de l’exécution de cette vérification?
stopifnot(all(c(2, 5, 8) >= 0))

Vérification pratique

Cette partie vérifie la capacité à écrire et à exécuter un court script, et non seulement à reconnaître une réponse. Les données ci-dessous sont fictives et servent uniquement à l’exercice.

Copiez le code suivant dans un nouveau script R:

mesures <- data.frame(
  station = c("Québec", "Québec", "Lévis", "Lévis", "Saguenay"),
  temperature = c(18.4, NA, 17.1, 19.3, 16.8),
  valide = c(TRUE, FALSE, TRUE, TRUE, TRUE)
)

Sans consulter la solution:

  1. conservez seulement les lignes valides dont la température n’est pas manquante;
  2. calculez la température moyenne par station;
  3. écrivez une fonction ecart_reference(x, reference = 18) qui retourne x - reference, puis appliquez-la aux températures conservées;
  4. relancez le script depuis une session R propre.

Le résultat attendu contient quatre lignes valides. Les moyennes sont 18,4 pour Québec, 18,2 pour Lévis et 16,8 pour Saguenay.

Avec tidyverse

# Charger les bibliothèques
library(tidyverse)

# Créer les données fictives de l’exercice
mesures <- tibble(
  station = c("Québec", "Québec", "Lévis", "Lévis", "Saguenay"),
  temperature = c(18.4, NA, 17.1, 19.3, 16.8),
  valide = c(TRUE, FALSE, TRUE, TRUE, TRUE)
)

# Conserver les mesures valides et observées
mesures_valides <- mesures |>
  filter(valide, !is.na(temperature))

# Calculer les moyennes par station
moyennes_station <- mesures_valides |>
  group_by(station) |>
  summarise(
    temperature_moyenne = mean(temperature),
    .groups = "drop"
  )

# Définir et appliquer une fonction
ecart_reference <- function(x, reference = 18) {
  x - reference
}

mesures_valides <- mesures_valides |>
  mutate(ecart = ecart_reference(temperature))

# Vérifier les principaux résultats
stopifnot(nrow(mesures_valides) == 4)
stopifnot(isTRUE(all.equal(
  sort(moyennes_station$temperature_moyenne),
  sort(c(18.4, 18.2, 16.8))
)))

mesures_valides
moyennes_station

Avec R de base

# Créer les données fictives de l’exercice
mesures <- data.frame(
  station = c("Québec", "Québec", "Lévis", "Lévis", "Saguenay"),
  temperature = c(18.4, NA, 17.1, 19.3, 16.8),
  valide = c(TRUE, FALSE, TRUE, TRUE, TRUE)
)

# Conserver les mesures valides et observées
mesures_valides <- mesures[
  mesures$valide & !is.na(mesures$temperature),
]

# Calculer les moyennes par station
moyennes_station <- aggregate(
  temperature ~ station,
  data = mesures_valides,
  FUN = mean
)

# Définir et appliquer une fonction
ecart_reference <- function(x, reference = 18) {
  x - reference
}

mesures_valides$ecart <- ecart_reference(
  mesures_valides$temperature
)

# Vérifier les principaux résultats
stopifnot(nrow(mesures_valides) == 4)
stopifnot(isTRUE(all.equal(
  sort(moyennes_station$temperature),
  sort(c(18.4, 18.2, 16.8))
)))

mesures_valides
moyennes_station

Si vous n’avez pas pu terminer cette tâche sans la solution, suivez au minimum les sections signalées dans votre bilan, même si votre résultat au questionnaire est élevé.

Ressources et fondement du contenu

Les questions couvrent les éléments introductifs documentés dans les références suivantes:

Pour travailler les domaines faibles, utilisez le parcours de mise à niveau en R. La formulation du prérequis provient de la fiche officielle de STT-4230, Université Laval, version affichée du 13 mai 2025 et consultée le 14 juillet 2026.

GPT du cours