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().
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.
#
É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.
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 ».
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)
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.
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).
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).
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"
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"
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"
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.
<- 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 ».
fruits[1] # Affichage du premier objet de ce vecteur
## [1] "banana"
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"