Cours L2 2023-2024 Version Etudiant
Cours L2 2023-2024 Version Etudiant
Cours L2 2023-2024 Version Etudiant
Programmation R
Dr. TIEMOKO
Enseignant-Chercheur
1
Planning
2
1. R-studio : notions essentielles pour débutants (1/2)
RStudio : interface conviviale
ESPACE DE
EDITEUR DE CODE TRAVAIL
GESTION DES
PACKAGES
CONSOLE AIDE
3
1. R-studio : notions essentielles pour débutants (2/2)
•Une console (Console): On écrit une ligne de code dans la console, on la valide (Entrée) et
on observe le résultat (pas besoin d'une étape préalable de compilation du code).
➢ Le mode est le type des éléments d’un objet ; il en existe quatre principaux : numérique,
caractère, complexe, et logique (FALSE ou TRUE). D’autres modes existent qui ne
représentent pas des données, par exemple fonction ou expression.
NB: Les données manquantes NA (not available) sont considérées comme étant de type logical par
R. pour tester si les éléments d'un objet sont NA ou non il faut utiliser la fonction is.na (x)
5
2. Les objets sur R (2/4)
2.1. Définition
NB: Type chaînes de caractères (character): Toute information mise entre guillemets
(simple ' ou double ") correspond à une chaîne de caractères.
Exemple: "R est mon ami"
Un objet peut-être créé à l’aide de l’opérateur « assigner » qui s’écrit avec le symbole <
suivi du signe – (<-). En d’autre terme, on peut utiliser le symbole ‘=‘. Cet objet est stocké
dans la mémoire vive et peut être modifié en lui assignant une autre valeur.
6
2. Les objets sur R (3/4)
2.2. Exemple
➢ Les objets : où les valeurs sont stockées, comment assigner des valeurs à des objets.
9
3. Gestion des projets
Créer un projet sous Rstudio pour vous permettre de recenser vos travaux
3.1. Pourquoi travailler avec les projets Rstudio plutôt que les scripts R
Cela permet la portabilité : le répertoire de travail par défaut d’un projet est le répertoire où est ce projet.
On intègre à un seul endroit tout ce qui est lié à un projet : données brutes, données retravaillées, scripts,
illustrations, documentations, publications
On peut travailler sur plusieurs projets en même temps, Rstudio ouvre autant de sessions que de projets dans ce cas
▪ Une liste d’ Arguments : la liste des arguments qui contrôlent l’appel à une fonction. Cette liste
d’argument est rappelée avec la fonction: formals (non fonction)
▪ Corps: contenant du code exécuté lors de l’appel à la fonction c’est à dire les commandes internes à la
fonction. Le corps est rappelé avec la fonction : body (nom de la fonction )
▪ Environnement : qui définit l’endroit où sont stockés les variables. (ex: environment(nom de la
fonction))
NB: Alors que les arguments et le corps de la fonction sont définis explicitement, l’environnement est lui défini
implicitement, selon le contexte dans lequel est évoqué la fonction
11
4. Projet sur les fonctions (2/3)
4.1. Le corps d’une fonction
Dans le cas le plus simple, le corps d’une fonction est constitué d’une seule instruction. Si on
désire en écrire plusieurs, il est nécessaire de les entourner par des accolades, pour réaliser un
regroupement. Le résultat est la valeur de la dernière commande contenue dans le corps de la
fonction.
fonction carre
Calculer la moyenne et l'écart-type pour un vecteur
f <- function(x) {
stat_des <- function(x) {
x^2
list(moyenne = mean(x), ecart_type = sd(x))
y <- x
}
y
x <- runif(10)
}
stat_des(x)
f(2)
12
4. Projet sur les fonctions (3/3)
4.1. Le corps d’une fonction
Considérons par exemple le problème suivant. Nous disposons d’une fonction de production
Y(L,K,M), qui dépend du nombre de travailleurs L et de la quantité de capital K, et du
matériel M, telle que Y(L,K,M)= 𝐿0.3 𝐾 0.5 𝑀0.2 . Cette fonction pourra s’écrire, en R de la
manière suivante :
production <- function (L, K, M) L^(0.3) * K^(0.5) * M^(0.2)
si on donne L=60 et K=42 et M=40, on peut en déduire la production : production(60, 42, 40)
Dans l’exemple de la fonction carre() que nous avons crée, nous avons renseigné un seul
argument, appelé x. Si la fonction que l’on souhaite créer nécessite plusieurs arguments, il faut
les séparer par une virgule.
13
Exercice 1
a) Créer une fonction nommée somme_n_entiers qui retourne la somme des n
premiers entiers. Son seul argument sera n ; 2.Utiliser la fonction somme_n_entiers() pour calculer la somme des
100 premiers entiers ;
b) Terminer la fonction par l’assignation du résultat dans un objet nommé res, puis évaluer l’expression suivante :
somme_n_entiers(100). Que peut-on constater ?
Exercice 2
Écrire une fonction nommée périmètre qui prend en entrée un argument nommé r et retourne le périmètre d’un
cercle de rayon r, c’est-à-dire 2 * pi * r (pi est un objet R qui contient la valeur de ).
Exercice 4
Soit la variance d’un échantillon de taille n d’une variable continue X. Ecrire une fonction nommée variance qui prend en entrée
un argument nommé X.
14
5. Les vecteurs (1/3)
5.1.Création
Pour créer un vecteur numérique : x= , c(), scan(), rep(), seq(), 1:10.
Pour créer un vecteur de caractères : x=" ", x=’ ’, c(), character(), rep(), format(), paste()...
Pour créer un vecteur logique : x=TRUE, x=FALSE, c(), logical(). À l’aide d’opérateurs :
(!=,==,<,>,<=,>=,%in%).
5.2. Extraction
Pour extraire des éléments d’un vecteur vect : vect[ ], vect[- ]
15
5. Les vecteurs (2/3)
5.3. Pratique
1. Créer de plusieurs façons différentes le vecteur (1, 2, 3, 4, 5, 6).
2. Créer le vecteur x égal à (1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4).
16
5. Les vecteurs (3/3)
5.3. Pratique
17
6. Les tableaux de données (data frame)
Les tableaux de données sont au cœur de nombreuses procédures dans R.
Par définition: un data frame est une liste composée d’un ou plusieurs vecteurs de même
longueur.
On peut obtenir les dimensions d’un data frame avec la fonction dim(), le nombre de lignes
avec nrow() et le nombre de colonnes avec ncol()
18
7. Importation, exportation et création de données
➢ Pour pouvoir analyser des données, il faut pourvoir les charger en mémoire. Heureusement,
il n’est pas nécessaire de les rentrer à la main, il existe des fonctions qui permettent de les
importer, depuis divers formats.
Cependant, pour charger le fichier dans R, il est nécessaire d’indiquer à R leur chemin (relatif
ou absolu).
7.1 Importation
Lorsque les données sont présentes dans un fichier texte (ASCII), R propose deux
fonctions : read.table() et scan(). Pour les données stockées dans des fichiers aux
formats différents, il est nécessaire de s’appuyer sur d’autres fonctions, non
contenues dans le package {base}. C’est le cas pour les fichiers Excel.
19
7.2 La fonction read.table
Cette fonction est très pratique lorsque les données sont déjà organisées dans un
tableau dans le fichier à importer. Elle crée alors un data frame contenant les
données.
df <- read.table("fichier.txt")
20
7.3 Importation depuis Excel
Nous allons voir comment importer des données directement depuis un fichier à
l’extension .xls ou .xlsx.
Il existe plusieurs méthodes, qui sont bien expliquées dans les documents de
référence de ce document. Nous allons uniquement aborder la manière à l’aide des
fonctions read.xls() et read_excel() contenues dans les packages {gdata} et {readxl}
respectivement.
Par défaut, la fonction read.xls() importe les données de la première feuille.
L’argument sheet permet d’indiquer la feuille souhaitée, en la référençant soit par
son numéro, soit par son nom.
21
7.4 Exportation
Pour enregistrer des données depuis un tibble, un data frame, un vecteur ou une
matrice, la fonction write.table() peut être utilisée. Par exemple, si le data
frame se nomme donnees, l’instruction ressemble à :
write.table(donnees, file = "nom_fichier.txt", sep = ";")
Il existe d’autres arguments, que le lecteur ou la lectrice pourra consulter dans l’aide
de la fonction write.table().
22
8. Manipulation des données
8.1 Opérateurs
Les opérateurs arithmétiques agissent sur des vecteurs ou des matrices. Ils opèrent
sur des objets de type numérique, complexe ou logique. En voici la liste :
Addition +
x <- c(1, 2, 3, 4, 5) Soustraction –
y <- c(2, 5, 2, 8, 1) Multiplication
X%% y # Modulo
23
8.3 Opérateurs de comparaison
Les opérateurs logiques opèrent sur un ou deux objets de type logique. Les
opérateurs ET et OU existent en R sous deux formes : la forme simple (& et |) et la
forme double (&& et ||). La forme simple opère sur chaque élément des objets, et
retourne le résultat de l’opération pour chaque élément. La forme double, quant à
elle, opère uniquement sur le premier élément des objets
24
9. Accès aux valeurs, modifications
Pour accéder aux éléments d’un objet, R propose plusieurs méthodes, qui
peuvent varier selon le type d’objet.
Un moyen simple d’accéder aux éléments d’un objet est d’utiliser le système
d’indexation. Cette indexation peut être de type numérique ou logique. Dans le cas
d’un vecteur, on extrait une composante en utilisant la fonction "["(), dont les
arguments en dehors du vecteur pour lequel on souhaite réaliser une extraction
peuvent être un vecteur d’indices d’éléments à extraire ou ne pas extraire, un
vecteur d’éléments de type logique indiquant si l’élément doit être extrait ou non.
25
1.Calculer la moyenne du chiffre d’affaires (CA) à l’année pour chaque bar ;
2.Ordonner les observations par valeurs croissante des moyennes ;
3.Afficher le top 5 des bars avec le plus gros CA.
Première méthode
La première méthode consiste à *sauvegarder un nouvel objet à chaque étape
(inutile de tenter d’évaluer le code qui suit, il ne fonctionnera pas : il s’agit
d’un exemple totalement fictif) :
26
FIN
27
Packages ou librairies
Toutes les fonctions et données de R sont stockées dans des packages.
Exemple:
• Addition +
• Soustraction -
• Produit *
• Division /
• Puissance ^
• Division entière %/% (et son modulo %%)
Exemples de calculs :
• == Egal
• != Différent
• < Strictement inférieur
• > Strictement supérieur
• <= Inférieur ou égal
• >= Supérieur ou égal
• is.na() Valeur manquante?
• & Et logique
• | Ou logique
• ! Non logique
• TRUE Oui
• FALSE Non
30
Fonctions statistiques usuelles
31
Exercices pratiques
32
2.4.1 Raccourcis utiles pour l’édition de code
Pour gagner du temps, il est important d’utiliser les raccourcis pour les
commandes répétitives. En voici une liste non exhaustive :
•Ctrl+Enter : exécuter les lignes sélectionnées;
•Tab : autocomplétion;
•Ctrl + Alt + R : exécuter l’ensemble d’un script;
•Ctrl + I : réindenter code;
•Ctrl + Shift + A : reformater code;
•Alt + Up/Down : déplacer une ligne sans faire copier-coller;
•Ctrl + Deplacement souris : passage en édition verticale (curseur en
colonne);
•Ctrl + Shift + M : insérer pipe %>%;
•Alt+ 6 (Windows) : insérer opérateur assignation <-;
•Ctrl + Shift + F : rechercher une expression dans plusieurs fichiers;
•Ctrl + Shift + K : compilation d’un markdown (knitter en bon français);
•Ctrl + Shift + Alt + M : renommer la variable dans la portée (scope).
33