Objectifs d’apprentissage
À la fin de cette section, les personnes étudiantes seront en mesure de :
- Ouvrir des jeux de données dans le logiciel statistique de leur choix ;
- Explorer des jeux de données et comprendre les données qu’ils contiennent ;
- Utiliser des commandes de base pour modifier leur données.
Télécharger les instructions pour R et RStudio
Vidéo A1.2.2a – Démarrer avec R et RStudio (2 minutes)
Vidéo A1.2.2b – Données et Variables dans R (5 minutes)
A1.2.2a PRACTIQUE : R
Trouver votre fichier de données
Télécharger votre jeu de données et enregistrez-le sur votre ordinateur. Notez l’emplacement du fichier ainsi que son chemin d’accès.
Ouvrir R
R peut être ouvert à partir de votre bureau ou de votre barre des tâches. Lorsque R est ouvert, vous devriez voir trois fenêtres : la « console », l’onglet « environnement » et l’onglet « fichiers ».
Créez un nouveau « projet » en cliquant sur « File » puis « New Project ». Enregistrez-le dans un emplacement accessible de votre répertoire de fichiers, en lui donnant un nom approprié qui fait référence à votre projet et à son contenu.
Créer un nouveau script R
Créez un nouveau « R Script » en cliquant sur « File », puis « New File » et « R Script ». Les fichiers R Script sont essentiels, car ils conservent un enregistrement permanent de toutes les commandes utilisées dans votre analyse. Cela est important, car cela vous permet de reproduire rapidement l’ensemble de votre travail en relançant simplement votre « R Script » lors de votre prochaine ouverture de RStudio.
Enregistrez ce fichier dans un emplacement facilement accessible. Lors du nommage des fichiers pour une utilisation avec R, il est préférable de choisir des noms simples, ce qui facilitera le travail de programmation ultérieur. Assurez-vous également que vos fichiers sont enregistrés dans des emplacements appropriés — modifier leur emplacement par la suite peut affecter le fonctionnement de votre code. Vous devriez maintenant avoir quatre fenêtres ouvertes.
Il est recommandé d’annoter votre script à l’aide de commentaires descriptifs pour vous orienter, en utilisant le symbole « # » comme préfixe. Voir ci-dessous :
# Practical 1:
# Author:
# Date:
S’il y a des modifications non enregistrées dans votre « R Script », le nom de l’onglet apparaîtra en rouge avec un astérisque (*) à côté. Pensez à enregistrer régulièrement en cliquant sur l’icône de disquette.
Modifier le répertoire de travail (working directory)
Il est souvent plus simple de commencer dans R en définissant un répertoire de travail. Le répertoire de travail est l’emplacement où RStudio ira chercher les fichiers d’entrée (c’est-à-dire votre jeu de données) et où il enregistrera les fichiers de sortie. De plus, définir un répertoire de travail à l’avance vous évite d’avoir à saisir le chemin d’accès complet chaque fois que vous souhaitez charger un fichier.
En tapant la commande suivante, vous afficherez le nom du répertoire de travail actuel :
getwd()
Si vous souhaitez modifier le répertoire de travail actuel, vous pouvez utiliser la commande suivante (où “filepath” correspond au chemin complet vers le dossier contenant le fichier « Whitehall_fossa.csv ») :
Pour Windows : setwd(“C:/filepath”)
Pour Mac: setwd(“~/filepath”)
Par exemple : setwd(“~/Desktop/modules”)
Vous pouvez également utiliser le menu déroulant pour définir le répertoire de travail vers le dossier où le fichier « Whitehall_fossa.csv » est enregistré (« Session » > « Set Working Directory » > « To Source File Location »).
Ouvrir votre jeu de données
L’importation de votre jeu de données peut être effectuée à l’aide de différentes commandes. Lorsque vous importez des données, vous exécutez une commande demandant à RStudio de lire votre « fichier ». Vous demanderez ensuite à RStudio d’importer vos données dans une structure appelée « objet », qui contiendra votre jeu de données importé.
Vous devrez donner un nom à cet « objet », qui existera dans l’environnement R. Ce nom doit être concis, car vous devrez l’utiliser à plusieurs reprises lors de votre analyse. Une fois votre code correctement saisi, cliquez sur « Run » dans la fenêtre du script. Vous devriez voir votre code s’exécuter dans la console, affiché en bleu.
Pour ouvrir des fichiers CSV :
object.name <- read.csv(“filename.csv”, header=””, na.strings=c(“”))
whitehall.data <- read.csv(“Whitehall_fossa.csv”, header=TRUE, na.strings=c(“”))
Les commandes additionnelles dans ‘read.csv’ fournissent à R des informations sur la manière de lire le jeu de données. Ici, “header=TRUE” indique à RStudio que la première ligne contient les noms des variables. “na.strings=c(“”)” précise que toute valeur vide (“”) doit être traitée comme une valeur manquante (NA) par R.
Pour les tableaux généraux :
object.name <- read_dta(“filename”, header=””, na.strings=c(“”))
Pour les fichier .dta (Stata) :
Install.packages(‘haven’)
Library(haven)
object.name <- read_dta(“filename.dta”, header=””, na.strings=c(“”))
Vous pouvez également cliquer sur « File » > « Import Dataset ». Si votre jeu de données a été importé correctement, vous devriez pouvoir le voir dans l’onglet « Environment », avec une description du nombre d’observations et de variables. Vous pouvez cliquer sur l’icône de tableau pour afficher les données.
Pour explorer votre jeu de données, vous pouvez utiliser plusieurs commandes :
Pour afficher le nombre total de lignes :
nrow(“object.name”)
nrow(whitehall.data)
Pour afficher le nombre total de colonnes :
ncol(“object.name”)
ncol(whitehall.data)
Ou, plus simplement, pour afficher simultanément le nombre de lignes et de colonnes :
dim(“object.name”)
dim(whitehall.data)
Question A1.2.2a: Explorer le jeu de données complet.
-
- Combien de lignes (individus ou observations) y a-t-il ?
- Combien de colonnes (variables) y a-t-il ?
- Examiner la variable ‘currsmoker’. Est-il clair quelles valeurs identifient les hommes et les femmes ?
Réponse
- 4327 lignes
- 17 colonnes
- Il n’est pas immédiatement évident à quoi correspondent les valeurs 0 et 1 pour la variable ‘currsmoker’, puisqu’elles n’ont pas d’étiquettes.
Vidéo A1.2.2c – Fonctions dans R (7 minutes)
A1.2.2b PRACTIQUE : R
Syntaxe générale
R est un langage orienté objet dans lequel les « objets » peuvent être de nature variée (constantes, données, structures, fonctions et graphiques) et peuvent être assignés à une « variable ». Ces objets peuvent être :
- Objets de données (data objects): ils stockent des valeurs numériques, logiques ou des chaînes de caractères. Ils existent sous différentes formes, comme illustré dans l’image ci-dessous. Les vecteurs constituent l’unité de base des objets de données.
- Objets du langage (Language object) : ils incluent les fonctions (objets créés par l’utilisateur pour exécuter des opérations spécifiques) ainsi que les expressions.
Dépannage – comment obtenir de l’aide
La commande ‘?’ dans RStudio peut être très utile pour en apprendre davantage sur les commandes que vous utilisez. Il suffit de taper ‘?nom_de_la_commande’ pour afficher une description de la commande. Par exemple, si vous souhaitez obtenir plus d’informations sur la commande ‘ncol’, vous pouvez taper :
?ncol
Si vous tapez “??nom_de_la_commande”, cela vous dirigera vers une liste (ou un répertoire) indiquant dans quel package se trouve la commande.
Explorer vos données
Plusieurs commandes peuvent être utilisées pour explorer vos données. La fonction str()permet d’afficher les noms de vos variables ainsi que la façon dont RStudio les définit actuellement (par exemple : entier, numérique, catégoriel ou chaîne de caractères).
str(object.name)
str(whitehall.data)
Vous pouvez utiliser les fonctions head() et tail()de la même manière pour afficher les n premières ou les n dernières lignes de votre jeu de données.
head(object.name,n=)
head(whitehall.data,n=5)
Il est aussi possible d’utiliser la fonction summary() afin de générer des statistiques descriptives de base pour l’ensemble de votre jeu de données. Pour isoler une seule variable, utilisez l’opérateur $ après votre object.name, puis indiquez le nom de la variable. Cette logique peut également être appliquée pour examiner la structure d’une variable.
summary(object.name$variable.name)
summary(whitehall.data$bmi_grp4)
Vous pouvez également vous faire une idée des variables de votre jeu de données en utilisant la fonction‘table’.
table(whitehall.data$currsmoker)
- Question A1.2.2b : Examiner la variable ‘bmi_grp4’.
-
- Quelle information est collectée dans cette variable ?
- Comment les réponses sont-elles codées ?
- Y a-t-il des données manquantes ?
Réponse
- Il s’agit d’une variable de type entier (integer) indiquant à quelle catégorie d’IMC appartiennent les participant·e·s. Nous pouvons le vérifier à l’aide de : str(whitehall.data$bmi_grp4)
- Nous pouvons obtenir des informations sur la façon dont cette variable est codée en utilisant : table(whitehall.data$bmi_grp4) Cela nous montre que les valeurs entières varient de 1 à 4.
- Nous pouvons voir qu’il y a 17 valeurs manquantes en utilisant la fonction suivante : summary(whitehall.data$bmi_grp4)
A1.2.2c PRACTIQUE : R
Étiquetage des variables
Si vous consultez la fenêtre « Variables », vous constaterez que la variable ‘currsmoker’ est une variable binaire qui peut prendre la valeur 0 ou 1. Cela n’est pas très informatif ; en réalité, 0 = non et 1 = oui. Nous devons donc réétiqueter les valeurs numériques de cette variable en “yes” et “no”.
Vous pouvez étiqueter vos données et indiquer à RStudio de traiter cette variable comme un ‘factor’ à l’aide de la commande suivante :
whitehall.data$currsmoker <- factor(whitehall.data$currsmoker, labels=c(“No”, “Yes”))
Créer de nouvelle variables – generate
Pour générer une nouvelle variable dans R, la syntaxe générale est :
variable.name <- operation
Considérez l’exemple suivant, où nous créons les nouvelles variables ‘a’ et ‘b’ afin d’effectuer une simple addition :
a <- 30
b <- 50
c <- a + b
Quel résultat avez-vous obtenu ?
Si vous exécutez ‘c’, vous devriez obtenir une valeur égale à 80. Vous pouvez également effectuer d’autres opérations mathématiques, telles que + (addition), – (soustraction), * (multiplication), / (division), ^ (puissance), sqrt (racine carrée), ln (logarithme naturel) et exp (exponentielle).
Vous pouvez aussi utiliser ces calculs pour créer différentes variables. Par exemple, vous pourriez calculer le nombre total de maladies antérieures diagnostiquées chez les participant·e·s en créant une nouvelle variable, ‘prior_disease’, correspondant à la somme de ‘prior_cvd’, ‘prior_t2dm’ et ‘prior_cancer’, puis en tabulant le résultat :
prior_disease <- prior_cvd + prior_t2dm + prior_cancer
table(prior_disease)
Remplacer et recoder
Vous pouvez modifier des variables à l’aide des commandes ‘replace’ et ‘recode’. VEUILLEZ NOTER QU’IL EXISTE PLUSIEURS FAÇONS (CORRECTES) DE RECODER ET DE GÉNÉRER DE NOUVELLES VARIABLES. Vous verrez quelques exemples dans cet exercice pratique, ainsi que d’autres exemples dans les séances futures. Le choix de la méthode pour remplacer ou recoder des variables relève généralement d’une préférence personnelle, et il importe rarement laquelle vous utilisez, puisque plusieurs commandes différentes peuvent produire le même résultat.
Essayez de modifier la variable ‘bmi’ afin de créer une variable binaire indiquant les individus présentant une obésité et ceux qui n’en présentent pas. Toutefois, ne modifiez jamais directement la variable originale (au cas où vous changeriez d’avis). Dupliquez d’abord la variable, puis recodez-la.
Pour créer une variable dupliquée dans le tableau de données (data frame) ‘whitehall.data’, nommée ‘bmi.2’, à laquelle est assignée la valeur de‘bmi’:
whitehall.data$bmi.2 <- Whitehall.data$bmi
Pour créer une nouvelle variable binaire, définissez d’abord une nouvelle variable et, pour le moment, attribuez-lui des valeurs ‘NA’ :
whitehall.data$bmi.2 <- NA
Nous devons maintenant attribuer les valeurs 0 ou 1 aux lignes vides de notre nouvelle colonne, selon que l’IMC (bmi) est inférieur à 30 (> 30) ou supérieur ou égal à 30 (> = 30) dans la variable originale ‘bmi’.
whitehall.data$bmi.2[whitehall.data$bmi<30] <- 0
whitehall.data$bmi.2[whitehall.data$bmi>=30] <- 1
Examinez la variable ‘bmi.2’ à l’aide de la fonction ‘table‘.
Vous pouvez étiqueter vos données et indiquer à RStudio de traiter cette variable comme un ‘factor’ à l’aide de la commande suivante :
whitehall.data$bmi.2 <- factor(whitehall.data$bmi.2, labels=c("Not Obese", "Obese"))
- Question A1.2.2c:
- Pouvez-vous générer une nouvelle variable identique à la variable ‘ldlc’ ? (appelez-la ‘ldl2’)
- Pouvez-vous recoder cette nouvelle variable afin d’indiquer les individus ayant un LDL-C inférieur ou égal à 4, et ceux ayant un LDL-C supérieur à 4 mmol/L ? (indice : utilisez ‘replace’ comme ci-dessus, avec les signes ‘<=’)
- Optionel : examinez la syntaxe de ‘recode’ (tapez ‘help recode’) afin de comprendre comment définir des étiquettes de valeurs directement dans la commande recode.
Réponse
Pour compléter cet exercice dans R, nous appliquons simplement la même logique que celle utilisée précédemment pour catégoriser l’IMC en variables binaires <30 et >=30. Notez qu’en poursuivant cette logique, nous aurions aussi pu transformer cette variable en valeurs entières ou en autant de catégories que souhaité pour notre analyse.
whitehall.data$ldl2 <- NA whitehall.data$ldl2[whitehall.data$ldlc<=4] <- 0 whitehall.data$ldl2[whitehall.data$ldlc>4] <- 1 whitehall.data$ldl2 <- factor(whitehall.data$ldl2, labels = c("Under 4", "Over 4")) table(whitehall.data$ldl2)
Nous aurions également pu combiner les étapes de définition de la variable, d’attribution des valeurs et d’ajout des étiquettes dans un seul bloc de code, comme ci-dessous, en utilisant la fonction ‘cut’ et en définissant des points de coupure (breaks) correspondant à une valeur minimale (0), au seuil souhaité (4) et à une valeur maximale (100).
whitehall.data$ldl2 <- cut(whitehall.data$ldlc, breaks=c(0,4,100), labels=c(“Under 4”, “Over 4”))
Vidéo A1.2.2d – R Markdown (8 minutes)