Cours L2 2023-2024 Version Etudiant

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 33

REPUBLIQUE DE CÔTE D’IVOIRE

UNION – DISCIPLINE - TRAVAIL

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR


ET DE LA RECHERCHE SCIENTIFIQUE

Programmation R

Dr. TIEMOKO
Enseignant-Chercheur

1
Planning

1. Introduction générale sur R basic et


installation des logiciels (R et R- -Pratique Projet sur les fonctions
studio) -Pratique Projet sur les objets
2. Quelques notions de bases
3. R-studio : notions essentielles pour
débutants
4. Les objets sur R
5. Gestion des projets

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).

•Un terminal (Terminal),


•Un éditeur de code: Possibilité de rédiger des scripts (« programme.R ») et de les lancer
dans le mode interactif via la commande source (« programme.R »),

•sorties graphiques (Plot),


•l'historique (History),
•une aide en ligne (Help),
•le contenu de l'espace de travail (Environment),
•un gestionnaire de fichier (Files),
•le gestionnaire de paquets (Packages).
4
2. Les objets sur R (1/4)
2.1. Définition
Tout dans le langage R est un objet : les variables contenant des données, les fonctions, les
opérateurs, même le symbole représentant le nom d'un objet est lui-même un objet. Les
objets sont caractérisés par un nom, un mode, une longueur et un contenu et certains
peuvent être dotés d'un ou plusieurs attributs.

➢ 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)

➢ La longueur est le nombre d’ éléments de l’objet. Pour connaître le mode et la longueur


d’un objet on peut utiliser, respectivement, les fonctions mode et length :

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.

ls() : pour afficher la liste des objets utilisés


rm(nom_objet): pour supprimer un objet

6
2. Les objets sur R (3/4)
2.2. Exemple

x<-1 A <- "Gomphotherium" ; compar <- TRUE; z <- 1i


v <- c(1, 2, 5, 9)
mode(v) mode(x) mode(A); mode(compar); mode(z)
[1] "numeric" [1]"numeric" [1] "character"
>length(x) [1] [1] "logical"
1 [1] "complex"

2.3. Mode et types de données


➢ Les objets de mode « numeric », « complex », « logical » et « character » sont des objets
simples qui ne peuvent contenir que des données d'un seul type.
➢ En revanche, les objets de mode « list » ou « expression » sont des objets récursifs qui
peuvent contenir d'autres objets. Par exemple, une liste peut contenir une ou plusieurs
autres listes. On y accède par la fonction mode() ou encore typeof(). Les listes dans R sont
les structures les moins rigides. Elles peuvent contenir des éléments de modes différents.
7
2. Les objets sur R (4/4)
2.4. Pratique
1.1 Numérique 1.2 Caractère
b <- 41.3 # assigne la valeur 41.3 à l'objet b x <- "La mort"
x <- b # b est assigné à x y <- "aux trousses"
x = b # b est assigné à x paste(x,y)
b -> x # b est assigné à x [1] "La mort aux trousses"
is.numeric(b) is.character(x)
[1] TRUE [1] TRUE
mode(b)
[1] "numeric"
1.4 Logique
1.3 Facteur
V1 < x <- TRUE
factor(c("less20years","more50years","less20years","more50ye is.logical(x)
ars","less20years")) mode(x)
V1 a <- 1
levels(V1) a==1
V1 a!=1
a>0
8
Résumé

➢ La console : l’endroit où vous tapez des commandes.

➢ Les objets : où les valeurs sont stockées, comment assigner des valeurs à des objets.

➢ Les types de données : entiers, doubles/numériques, charactères et logiques.

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

3.2. Etape pour créer un projet


1. Cliquer sur l’onglet juste en dessous de EDIT.
2. Cliquer sur New Directory
3. Cliquer sur New Project
4.Dans l’onglet directory name, renseigner le non de votre projet
5.Dans browse, choisir ou créer le dossier où tu veux mettre le projet
6.Cliquer sur Create Project
10
4. Projet sur les fonctions (1/3)
Les fonctions en R, excepté les fonctions primitives du package {base}, sont
composées de trois parties :

▪ 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)

4.2. Les arguments d’une fonction

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).

3. Créer les vecteurs suivants :


◦ (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) :
◦ (10, 9, 8, 7, 6, 5, 4, 3, 2, 1) :
◦ (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1) :
◦ (1, 2, 3, 1, 2, 3, . . . , 1, 2, 3) dans lequel il y a 12 fois le chiffre 1 :
◦ (1, 1, . . . , 1, 2, 2, . . . , 2, 3, 3, . . . , 3) dans lequel il y a 5 fois le chiffre 1, 15 fois le chiffre 2
et 30 fois le chiffre 3 :
4. Créer un vecteur dont les valeurs des éléments sont
avec x = 2, 2.1, 2.2, . . . , 7.9, 8

16
5. Les vecteurs (3/3)
5.3. Pratique

5. On définit un vecteur x par les commandes R suivantes :


x = c (4.12, 1.84, 4.28, 4.23, 1.74, 2.06, 3.37, 3.83, 5.15, 3.76, 3.23, 4.87, 5.96, 2.29, 4.58)

a. Créer un vecteur égal à x sans ses 4 premiers éléments :


b. Créer un vecteur égal à x sans ses 1er et 15ème éléments :
c. Créer un vecteur contenant les éléments de x dont les valeurs sont strictement supérieures
à 2.57 et strictement inférieures à 3.48 :
d. Créer un vecteur contenant les éléments de x dont les valeurs sont strictement supérieures
à 4.07 ou strictement inférieures à 1.48 :
e. Déterminer la coordonnée de la plus petite valeur des éléments de x :

17
6. Les tableaux de données (data frame)
Les tableaux de données sont au cœur de nombreuses procédures dans R.

Traditionnellement, la structure adaptée aux données rectangulaires (variables en colonnes et


observations en lignes) est ce que l’on appelle les data frames.

Par définition: un data frame est une liste composée d’un ou plusieurs vecteurs de même
longueur.

➢ La création d’un tableau de données se fait via la fonction data.frame(). La fonction


as.data.frame() permet quant à elle de convertir un objet d’un autre type en data frame.
femmes <- data.frame (taille= c(58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72),
poids = c(115, 117, 120, 123, 126, 129,132, 135, 139, 142, 146, 150, 154, 159, 164))
is.data.frame(femmes)

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")

Il existe de nombreux arguments pour la fonction read.table(). Seuls les principaux


seront abordés ici. Le lecteur ou la lectrice pourra consulter l’aide ?read.table()
pour obtenir de plus amples détails.

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

Il existe trois sortes d’opérateurs en R, à savoir arithmétiques, de comparaison et


logiques.

8.2 Opérateurs arithmétiques

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

x != 2 # Différent de x <= 2 # Inférieur ou égal à

8.4 Opérateurs logiques

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.

9. 1. Accès par indices

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.

Nous allons présenter trois manières différentes de procéder, puis nous


regarderons la solution avec le fameux opérateur pipe dont on tait encore ici
l’utilité (quel suspens !).

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.

install.packages ("nom du package") # installer le package


library (nom du package) # charger le package
require (nom du package) # charger le package
Library () # pour vérifier tous les packages installés

Exemple:

Installer et charger les packages suivants: ggplot2; questionr ; timeDate ; trend;


timeSeries; etc.
28
3) Operateurs mathématiques et opérations

• Addition +
• Soustraction -
• Produit *
• Division /
• Puissance ^
• Division entière %/% (et son modulo %%)

Exemples de calculs :

> 4+8 > 2^2 (puissance)


> 12 >4
> (6+5*2)/2 > sqrt (9) (racine carrée)
>8 >3 29
Operateurs logiques

• == 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

Vous aimerez peut-être aussi