Semaine 2 : Introduction à R

 

Dans cette séance, nous allons (1) présenter les fonctions de base de R, (2) créer des objets de différentes classes et (3) créer des vecteurs et des jeux de données (data frames).

 

Fonctions pertinentes : install.packages(), library(), read.csv(), class(), data.frame().

 

1. Comprendre les bases

 

1.1 Exécuter votre code avec command + enter

 

La première étape est la plus fondamentale : exécuter votre code. Si vous tapez du code directement dans la console, il sera exécuté automatiquement lorsque vous appuierez sur enter. Cependant, le code est généralement écrit dans votre script et envoyé dans la console à l’aide de command + enter, le curseur étant placé à l’une ou l’autre des extrémités de la ligne de code. Vous pouvez aussi utiliser l’icône run dans l’environnement RStudio, mais cette méthode est moins conviviale.

 

answer <- 1+1 # Création d'un objet appelé answer

answer # Affichage de la valeur de notre objet "answer"
## [1] 2

 

Notre code initial, affiché en gris pâle, est un exemple typique de ce qui peut être écrit dans un script. De même, ## [1] 2 correspond au résultat qui apparaîtrait dans votre console en exécutant ces lignes de code.

 

 

1.2 Écrire un commentaire avec #

 

Écrire des commentaires est une partie essentielle du travail d’un bon scientifique des données. Non seulement cela permet aux autres de comprendre plus facilement votre code, mais cela vous permet aussi de vous rappeler pourquoi vous avez utilisé certaines fonctions. Les caractères qui suivent un # dans votre script sont considérés comme des commentaires et ne seront pas exécutés par R lorsque vous lancerez votre code.

 

# Ceci est un commentaire

## Ceci est aussi un commentaire

print("Hello World") # Ce qui est à gauche du hashtag sur cette ligne n'est pas un commentaire
## [1] "Hello World"

 

Vous pouvez utiliser autant de # que vous le souhaitez pour rendre votre script plus lisible. Veuillez noter que si vous utilisez 5 # ou plus, vous créerez un chunk (ou une sous-section de code). Cette technique peut être utile lorsque vous travaillez avec des scripts plus longs.

 

 

1.3 Installer un package avec install.packages()

 

R est un langage de programmation à code source ouvert (open source), ce qui signifie que toute personne ayant des compétences suffisantes en programmation peut contribuer à la communauté R en créant son propre package (package). Ces packages fonctionnent comme des « extensions » des fonctions de base déjà incluses lorsque vous téléchargez R pour la première fois. install.packages() est l’une de ces fonctions de base : elle vous permet de télécharger n’importe quel package répertorié dans le dépôt de R (https://cran.r-project.org/).

 

Veuillez noter que je mets la fonction en commentaire ici (avec un # devant) à titre d’exemple. Pour installer un package, vous devez enlever ce # avant de rouler le code.

 

# install.packages("tidyverse")

# Tidyverse est une collection de packages R conçus pour la science des données.
# Tous ces packages partagent une philosophie de conception, une grammaire et une structure de données communes.
# Veuillez télécharger ce package, car il vous sera utile dans ce cours.
# Pour plus d'informations, consultez : https://www.tidyverse.org/packages/

 

Veuillez noter que R est sensible à divers éléments de syntaxe. Par exemple, si vous essayiez d’exécuter install.packages(tidyverse) (sans guillemets anglais de type ““), un message d’erreur apparaîtrait (de même si vous utilisez les guillemets francophones «»). De même, R est sensible à la casse : si vous créez un objet appelé « myName », le langage de programmation ne reconnaîtra pas « myname ».

 

 

1.4 Charger un package avec library()

 

Une fois qu’un package est installé, il demeure inactif dans RStudio. Afin d’activer les fonctions comprises dans ce package, vous devez le charger dans votre bibliothèque à l’aide de la fonction library().

 

Veuillez noter que je mets la fonction en commentaire ici (avec un # devant) à titre d’exemple. Pour charger un package, vous devez enlever ce # avant de rouler le code.

 

# library(tidyverse)

 

 

1.5 Charger un jeu de données avec read.csv()

 

Veuillez noter que vous pouvez charger n’importe quel fichier .csv dans votre environnement de travail en utilisant la fonction read.csv(). Vous devez indiquer le chemin d’accès correct vers le fichier.

 

Veuillez noter que je mets la fonction en commentaire ici (avec un # devant) à titre d’exemple. Pour importer un fichier, vous devez enlever ce # avant de rouler le code. Vous devez également changer le lien vers ce fichier pour l’adapter à sa localisation sur votre ordinateur. Une excellente ressource en ligne à ce sujet est disponible ici: https://www.r4epi.com/chapters/file_paths/file_paths.

 

# turnout2018 <- read.csv("/Users/evelynebrie/Dropbox/Datasets/fileName.csv")

 

Le chemin d’accès (path) s’écrit différemment selon votre système d’exploitation. Voici comment charger un fichier nommé fileName.csv situé sur votre bureau (Desktop) :

 

# Sur Mac :
# turnout2018 <- read.csv("/Users/votreNom/Desktop/fileName.csv")

# Sur Windows :
# turnout2018 <- read.csv("C:/Users/votreNom/Desktop/fileName.csv")

 

Si le fichier se trouve plutôt dans un dossier (par exemple, un dossier nommé POL2809 sur votre bureau), il suffit d’ajouter le nom du dossier au chemin d’accès :

 

# Sur Mac :
# turnout2018 <- read.csv("/Users/votreNom/Desktop/POL2809/fileName.csv")

# Sur Windows :
# turnout2018 <- read.csv("C:/Users/votreNom/Desktop/POL2809/fileName.csv")

 

Attention : Windows affiche les chemins d’accès avec des barres obliques inversées (\), par exemple C:\Users\votreNom\Desktop. Dans R, vous devez toutefois utiliser des barres obliques normales (/), sinon un message d’erreur apparaîtra. Remplacez simplement chaque \ par un / lorsque vous copiez un chemin d’accès depuis l’explorateur de fichiers Windows.

 

Aussi : Évitez les espaces dans les noms de fichiers et de dossiers (p. ex. utilisez mon_fichier.csv plutôt que mon fichier.csv), car ils peuvent causer des erreurs dans R.

 

2. Attributs et structure des données

 

Les objets sont des entités possédant différents attributs. Une séquence d’éléments est appelée un vecteur, et une séquence de vecteurs est appelée un jeu de données (data frame).

 

(1) Élément

 

(2) Vecteur

 

(3) Jeu de données (data frame)

 

 

2.1 Créer un objet et afficher sa classe avec class()

 

Les objets peuvent appartenir à diverses classes en R. Dans cette séance, nous nous concentrerons sur les trois classes principales : caractère (character), numérique (numeric) et logique (logical).

 

 

2.1.1 Objet logique (= TRUE ou FALSE)

 

myLogObject <- TRUE # Création d'un objet logique
myLogObject # Affichage de l'objet
## [1] TRUE
class(myLogObject) # Affichage de la classe de l'objet "myLogObject"
## [1] "logical"

 

2.1.2 Objet numérique (= nombres)

 

myNumObject <- 1 # Création d'un objet numérique
myNumObject # Affichage de l'objet
## [1] 1
class(myNumObject) # Affichage de la classe de l'objet "myNumObject"
## [1] "numeric"

 

2.1.3 Objet caractère (= tout ce qui se trouve entre guillemets)

 

myCharObject <- "1" # Création d'un objet caractère
myCharObject # Affichage de l'objet
## [1] "1"
class(myCharObject) # Affichage de la classe de l'objet "myCharObject"
## [1] "character"

 

2.2 Créer des vecteurs et des jeux de données

 

Créons un jeu de données composé d’objets de type caractère. Plus précisément, nous voulons créer ce jeu de données « liste d’épicerie » contenant les noms de différentes choses que nous souhaitons acheter à l’épicerie.

 

Notre jeu de données « liste d’épicerie »

 

2.2.1 Créer un vecteur avec <- c("...","...")

 

D’abord, nous créons un vecteur nommé fruits comprenant quatre objets de type caractère.

 

fruits <- c("banana", "apple", "watermelon", "kiwi") # Création d'un vecteur de caractères appelé fruits

fruits # Affichage du contenu de ce vecteur
## [1] "banana"     "apple"      "watermelon" "kiwi"

 

Nous pouvons aussi sélectionner un objet spécifique au sein de ce vecteur à l’aide de crochets. Par exemple, sélectionnons l’objet appelé « banana ».

 

Premier objet du vecteur

 

fruits[1] # Affichage du premier objet de ce vecteur
## [1] "banana"

 

2.2.2 Créer un jeu de données avec data.frame()

 

Nous pouvons créer un jeu de données à l’aide de la fonction data.frame().

 

# D'abord, créons quatre vecteurs comprenant différents types d'aliments

fruits <- c("banana", "apple", "watermelon", "kiwi")
vegetables <- c("carrot", "cucumber", "potato", "tomato")
desserts <- c("ice cream", "cake", "donut", "cookie")
beverages <- c("coffee", "milk", "tea", "juice")

# Ensuite, créons un jeu de données à partir de ces vecteurs avec la fonction data.frame()

MyData <- data.frame(fruits, vegetables, desserts, beverages, stringsAsFactors=FALSE)

# Le code suivant aurait créé un jeu de données similaire

MyData <- data.frame(
  fruits=c("banana", "apple", "watermelon", "kiwi"),
  vegetables=c("carrot", "cucumber", "potato", "tomato"),
  desserts=c("ice cream", "cake", "donut", "cookie"),
  beverages <- c("coffee", "milk", "tea", "juice"),
  stringsAsFactors=FALSE)

 

Vous pouvez sélectionner des vecteurs ou des objets spécifiques au sein de ce jeu de données à l’aide de $ ou de crochets.

MyData[1,1] # Affichage du premier objet du premier vecteur
## [1] "banana"
MyData[2,1] # Affichage du deuxième objet du premier vecteur
## [1] "apple"
MyData$fruits # Affichage de la colonne (ou du vecteur) appelée "fruits"
## [1] "banana"     "apple"      "watermelon" "kiwi"
MyData$fruits[1] <-"mango" # Modification de la valeur du premier objet du vecteur "fruits"

MyData$fruits[1] # Affichage du premier objet du vecteur "fruits"
## [1] "mango"