Lors de cette séance nous allons apprendre:
Ce que sont R
et Rstudio et comment y importer des
données
Des bases de codage avec R
R
est un logiciel de statistique et un langage de
programmation. Afin de faire quoi que ce soit avec R
nous
devons écrire des instructions avec un code spécifique. Apprendre à
utiliser R
peut prendre du temps mais nous allons le faire
ensemble pas à pas. Cependant, le meilleur moyen d’apprendre est
d’utiliser R
régulièrement, par exemple pour vos projets de
TP ou lors de vos stage.
Nous allons utiliser Rstudio, qui est un logiciel qui permet
d’utiliser une interface facile d’utilisation quand nous travaillons
avec R
.
Voici à quoi ressemble RStudio:
Concentrons nous sur la partie en bas à gauche qui est la console. C’est l’endroit où les commandes R sont exécutées et où les outputs de la commande sont montrés.
Nous pouvons par exemple utiliser R pour faire des calculs:
# Opérations basiques avec R
3 + 2 # somme
## [1] 5
3 - 2 # soustraction
## [1] 1
3 * 2 # multiplication
## [1] 6
3 / 2 # division
## [1] 1.5
3 ^ 2 # exponentiel
## [1] 9
Notez que les lignes commençant avec le symbole #
sont
des “Commentaires” que R ignore et ne les exécute pas pas comme du
code.
Dans R, nous pouvons conserver l’output d’une commande dans un objet, et lui donner un nom.
Pour cela, il faut utiliser <-
avec le nom de l’objet
à gauche et la commande à droite (attention, ne pas inclure d’espace
entre <
et -
)
# Conserver le résultat de l'opération dans un objet appelé "mon_objet"
mon_objet <- 3 + 2
Attention: Ce que nous appelons ici un objet peut aussi s’appeler une variable. Ces deux termes ne veulent pas dire exactement la même chose mais pour un soucis de simplicité nous avons fait le choix de toujours utiliser le terme objet dans ce cours (même si ce n’est toujours le terme exact)
Nous pouvons ensuite réutiliser ce qui est stocké dans l’objet pour différentes opérations. Par exemple:
mon_objet + 1
## [1] 6
mon_objet + 2
## [1] 7
mon_objet * 2 + 3
## [1] 13
Notez que la valeur de mon_objet
n’a pas changé:
mon_objet
## [1] 5
Cependant, il est possible de changer la valeur de
mon_objet
en y sauvant une nouvelle valeur:
mon_objet <- 6
La valeur précédente de mon_objet
est maintenant perdue,
et il faudrait réutiliser la commande précédente pour la retrouver.
Quelle est la valeur de
mon_objet
après la commande suivante?
mon_objet <- mon_objet + 1
Un des atouts de R réside dans ces fonctions, qui permettent d’effectuer des opérations (parfois très compliquées) avec une seule commande.
Pour utiliser des fonctions, nous utilisons toujours la même
structure de code: fonction(inputs)
Tout d’abord le nom de
la fonction, puis des parenthèses (sans espace avec le nom de la
fonction) et enfin dans les parenthèses la liste des inputs
(arguments) qui donnent les informations nécessaires à la
fonction pour effectuer ses opérations.
Vous allez découvrir de nombreuses fonctions tout au long de ce cours, mais tout d’abord voici un exemple avec des fonctions assez simple:
# racine carrée de 3
sqrt(3)
## [1] 1.732051
# Arrondi de 3.14
round(3.14)
## [1] 3
La fonction round() a arrondi le nombre à l’entier le plus proche
(pas de chiffre après la virgule). Cependant, nous pourrions vouloir
arrondir en gardant un, deux (ou plus) chiffres après la virgule. C’est
possible en utilisant l’ argument “digits” de la fonction
round()
:
# Arrondir 3.14 en gardant un chiffre après la virgule
round(3.14, digits = 1)
## [1] 3.1
Les arguments dans les fonction sont séparés par une virgule
,
.
Mais comment connaître les arguments d’une fonction et leurs nom? En regardant la documentation de la fonction.
Chaque fonction a une page d’aide que l’on peut appeler en utilisant
?
suivi du nom de la fonction. Par exemple
?round
.
Sur la page d’aide, nous pouvons voir que la fonction
round()
accepte deux arguments appelés “x” et “digits”. “x”
est le nombre que nous voulons arrondir et “digits” est le nombre de
chiffres après la virgules que nous voulons.
A l’aide de ces exemples, comprenez mieux comment utiliser les arguments dans les fonctions:
round(x = 2.72, digits = 1)
## [1] 2.7
round(digits = 1, x = 2.72)
## [1] 2.7
round(2.72, 1)
## [1] 2.7
round(1, 2.72)
## [1] 1
Les codes R peuvent être sauvés dans des documents textes, appelés
scripts (sauvés avec l’extension .R
). Il est mieux
d’utiliser des scripts, que d’écrire directement dans la console, car
ainsi vous gardez une trace des codes contenant les opérations et
analyses des données. Ces codes peuvent être réutilisés, modifiés ou
partagés, permettant une analyse reproductible des données.
Pour commencer un nouveau script, cliquez sur le bouton avec un “plus” vert dans le menu en haut à gauche, et sélectionnez “R script”. Un nouveau document va s’ouvrir dans la partie en haut à gauche de Rstudio.
Cette zone dans Rstudio est un éditeur de texte, avec des fonctionnalités telles que l’auto-complétion ou la détection de certaines erreurs de code.
Il est fortement recommandé de sauver les codes de vos analyses dans un script.
Pour importer des données dans R, nous devons tout d’abord savoir comment dire à R où se situe notre document dans nos dossiers.
Pour cela nous devons indiquer le chemin du document dans les dossiers. Comme une adresse du document sur notre ordinateur.
Les chemins sont écrits ainsi:
dossier/sous_dossier/autre_sous_dossier/document.txt
Les dossiers sont séparés par /
.
Le nom du document est à la fin (incluant l’extension).
Les espaces doivent être évités.
Mais quel est le début du chemin?
Cela peut varier d’un ordinateur à un autre, mais un bon moyen de savoir est de regarder quel est le dossier de travail que R utilise. C’est le chemin que R utilise comme référence quand vous l’utilisez.
Tout d’abord, voyons quel est le dossier de travail de R:
getwd()
L’output de cette commande va dépendre du système d’exploitation et du nom de l’utilisateur.
Par exemple, avec un utilisateur appelé sandra, le dossier de travail par défaut est:
/Users/sandra/
Et sur un Windows:
C:/Users/sandra/Documents
Quand vous faites des analyses sur R, il peut être pratique de définir le répertoire de travail de R pour qu’il soit le dossier où vous avez le projet en cours d’analyse.
Si le matériel du cours est sur le bureau de l’ordinateur, les données pour cette séance sont dans le dossier:
Desktop
|
|_2021_L3_R
|
|_session1_organisation
|
|_data
|
|_dataset_tidy.csv
Il est donc plus pratique si le répertoire de travail est
session1_organisation
.
Pour changer le répertoire de travail, nous utilisons la fonction
setwd()
.
# Sur Mac
setwd("/Users/sandra/Desktop/2021_L3_R/session1_organisation/")
# Sur Windows
setwd("C:/Users/sandra/Desktop/2021_L3_R/session1_organisation/")
Changez votre répertoire de travail pour le dossier où est le cours en suivant les exemples ci-dessus. Confirmez que vous êtes dans le bon dossier en utilisant la commande
getwd()
.
Conseils:
Quand vous écrivez un chemin de dossiers dans R, utilisez des
guillemets "
Utilisez la touche Tab
quand vous écrivez le chemin
du dossier, - RStudio complétera le chemin pour vous
Le chemin peut être relatif à votre répertoire de travail actuel. Pour cela :
./
pour indiquer votre répertoire
de travail actuel../
pour indiquer le répertoire
avant votre répertoire de travail actuelAfin de pouvoir importer des données dans R, il faut connaître leur
format. S’agit-il de données .txt
avec les colonnes
séparées par tabulation ou de données .csv
avec
les colonnes séparées par des virgules ou des
point-virgules? Il est important de connaitre la réponse à
cette question car nous allons utiliser des fonctions différentes pour
lire chaque type de données
Pour importer des données .txt
avec les colonnes
séparées par tabulation nous allons utiliser la fonction
read_tsv()
.
Cette fonction est incluse dans un package appelé
tidyverse
. Il faut donc d’abord charger
tidyverse
dans R en utilisant la fonction
library()
:
library(tidyverse)
Pour importer les données, il existe différentes fonctions qui sont adaptées aux formats du fichier:
read_tsv()
pour les données .txt
avec
les colonnes séparées par une tabulation
read_csv()
pour les données .csv
avec
les colonnes séparées par une virgule
read_csv2()
pour les données .csv
avec
les colonnes séparées par un point virgule
Note: Il existe aussi une fonction read.csv()
,
qui est la fonction par défaut pour importer des données csv, et qui est
très similaire à read_csv()
. Pour ce cours, nous allons
utiliser les fonctions read_tsv()
ou
read_csv()
du package tidyverse
car elles sont
plus pratiques.
Exercice:
Créez un script qui:
- Charge le package
tidyverse
(en utilisantlibrary()
)- Défini votre répertoire de travail dans le dossier
session1_organisations
(en utilisantsetwd()
)- Importe le fichier dataset_tidy_all.txt qui est dans le dossier data (en utilisant
read_tsv()
)Conseil: Si besoin consultez la page d’aide des fonctions en utilisant
?
(par exemple?library()
pour consulter la page d’aide de la fonctionlibrary()
)