Lab 04 - Star Wars

Crédit : Lucas Film

Le but de ce lab est de traiter des données brutes de telle sorte qu’elles soient prêtes à être analysées. Nous allons pour cela utiliser les fonctions du tidyverse.

Pour commencer

Nous allons utiliser GitHub Classroom pour que vous puissiez rendre vos réponses. Sur le portail de cours, vous trouverez un lien vers un assignment.

  • Cliquez sur le lien
  • Connectez vous avec votre compte Github si ce n’est pas fait
  • Acceptez l’assignment
  • Liez votre compte avec votre nom d’étudiant

Vous devriez maintenant voir un repository appelé Lab04-[votre-username] où devrait être votre nom d’utilisateur GitHub.

Sur la page du repository:

  • Cliquez sur le bouton vert:
  • Copiez le lien terminant en .git
    • Quelque chose ressemblant à https://github.com/PRO1036/lab04-[votre-username].git

Dans RStudio:

  • Fichier > Nouveau Projet
  • Version Control > Git
  • Dans Repository URL : indiquez l’adresse copiée à l’étape précédente
  • Choisissez un nom pour le dossier qui sera créé, par exemple “Lab02”
  • Choisissez où vous voulez créer le projet dans votre ordinateur.

Cela va copier les fichiers présents sur GitHub, et les copier dans le dossier spécifié. Dans le YAML, le output est réglé sur "github_document". Cela permet d’obtenir un format adapté à GitHub. Notamment, votre fichier final sera un fichier Markdown (.md).

Packages

Nous utiliserons le package tidyverse pour une grande partie de la manipulation des données. Vous pouvez le charger en exécutant ce qui suit dans votre Console :

library(tidyverse)

Données

Le jeu de données pour cet exercice se trouve sous forme de fichier CSV (valeurs séparées par des virgules) dans le dossier data de votre dépôt. Vous pouvez les charger avec :

sw <- read_csv("data/starwars_characters.csv")

Les descriptions des variables sont les suivantes :

  • name : nom du personnage
  • height : taille (en cm)
  • mass : masse (en kg)
  • hair_color : couleur des cheveux
  • skin_color : couleur de la peau
  • eye_color : couleur des yeux
  • birth_year : année de naissance (BBY = Before the Battle of Yavin, ABY = After the Battle of Yavin)
  • gender : genre
  • homeworld : planète d’origine
  • species : espèce

Pour préparer les données et corriger les éventuelles erreurs, il est parfois nécessaire de faire des vérifications manuelles. Vous pouvez utiliser le site Wookieepedia pour vérifier les informations sur les personnages.

Exercices

Exercice 1

Combien d’observations et de variables y a-t-il dans le jeu de données ? Quel est le type attendu de chaque variable ? En jetant un coup d’oeil aux données, essayez de dresser une liste des changements à apporter pour que les données soient prêtes à être analysées. Nous voulons des données uniformes et dont le type est adapté à l’analyse.

Pour la suite des exercices, vous allez modifier l’objet sw, notamment en utilisant le verbe mutate. Faites particulièrement attention aux warnings qui peuvent apparaître lors de la modification des colonnes. Ceux-ci peuvent vous aider à trouver des erreurs. Pour faciliter le travail, stockez vos colonnes modifiées dans de nouvelles colonnnes, par exemple mass_clean, height_clean, etc. À la fin, vous pourrez supprimer les anciennes colonnes.

Exercice 2

Corrigez la colonne mass de sorte à obtenir des nombres. Assurez-vous de modifier les valeurs mal renseignées (regardez par exemple les masses de Chewbacca et de Jabba) avant de faire une conversion de type.

🧶 ✅ ⬆️ Knit, commit, and push ! N’oubliez pas le message de commit.

Exercice 3

Pour la colonne gender, quelles sont les valeurs possibles ? Comment sont désignées les valeurs inconnues ?

En particulier, de quelle espèce sont les personnages avec des genre inconnus ?

Modifiez les valeurs du genre pour ces personnages de telle manière à les uniformiser. Vous pouvez choisir un genre adapté, en utilisant le nom de l’espèce par exemple.

🧶 ✅ ⬆️ Knit, commit, and push ! N’oubliez pas le message de commit.

Exercice 4

Transformez la colonne homeworld en facteur et attribuez la valeur Unknown aux valeurs manquantes.

🧶 ✅ ⬆️ Knit, commit, and push ! N’oubliez pas le message de commit.

Exercice 5

Modifiez la colonne birth_year pour qu’elle soit de type numérique en enlevant le “BBY”. Pour cela, vous pouvez utiliser la fonction str_replace du package stringr (déjà chargé avec le tidyverse).

🧶 ✅ ⬆️ Knit, commit, and push ! N’oubliez pas le message de commit.

Exercice 6

Créez un boxplot de la variable mass en fonction de la variable species. Cela est difficile à lire…

Regroupez les espèces qui possèdent moins de 2 individus dans une catégorie Other et refaites le boxplot. C’est mieux…

Ordonnez les catégories selon la hauteur moyenne des espèces et refaite le boxplot !

🧶 ✅ ⬆️ Knit, commit, and push ! N’oubliez pas le message de commit.

Exercice 7

Créez une nouvelle variable bmi (Body Mass Index) en utilisant les colonnes mass et height. Assurez-vous que les valeurs soient correctes et que les valeurs manquantes soient traitées correctement.

Refaite le boxplot de la question précédente en utilisant le BMI à la place de la masse.

🧶 ✅ ⬆️ Knit, commit, and push ! N’oubliez pas le message de commit.

Exercice 8

Terminez pas passer en revue les autres variables et corrigez les erreurs que vous pourriez trouver. Assurez-vous que les valeurs manquantes soient codées de manière uniforme.

Conclusion

Vous devriez maintenant avoir un jeu de données propre et prêt à être analysé. Pour l’ensemble des colonnes, vous devriez avoir :

  • Vérifier que les valeurs manquantes sont toutes représentées de la même manière.
  • Vérifier que les valeurs sont uniformes (pas de dédoublement de valeurs)
  • Les types sont correctement entrés (numérique, facteur, etc.)

Si c’est correct, vous pouvez supprimer les anciennes colonnes et renommer les nouvelles.

🧶 ✅ ⬆️ Knit, commit, and push ! N’oubliez pas le message de commit.