Langage R :Cours,
Exemples &
Exercices
M. El Hamly, Ing., Ph.D.
Version 2020
2.
Plan du cours: ‘Langage R’
• Installation de R
• Installation de R-Studio
• Langage R
• Dataframes sous R
Dr. M. El Hamly : Langage R 2
3.
Installation de R,R-Studio
Dr. M. El Hamly : Langage R 3
Installation de R :
• http://www.r-project.org
• Après téléchargement, vous aurez un fichier de nom
analogue à R-3.4.4-win
• Si vous avez déjà une version antérieure à la courante, il
vaut mieux la désinstaller en 1er lieu et ensuite installer
la version courante.
Installation de R-Studio (optionnel) :
• https://www.rstudio.com/products/rstudio/download/
• Après téléchargement, vous aurez un fichier de nom
analogue à RStudio-1.1.442
4.
R Studio: Creatinga new project
• R Studio : Un environnement de développement
• File
• New Project
• Existing Directory
• Browse
• Create Project
• File
• New Project
• New Directory
• Empty Project
Dr. M. El Hamly : Langage R 4
5.
R Studio: Settinga default working directory
When not in a project
• Tools
• Global Options
• Etc.
Dr. M. El Hamly : Langage R 5
6.
R Studio: Changingthe working directory
• Session
• Set Working Directory
• Choose Directory
Dr. M. El Hamly : Langage R 6
Historique
Dr. M. ElHamly : Langage R 8
• Dans le milieu des années 1970, une équipe de chercheurs
de AT&T Bell Laboratories, composée de John Chambers,
Douglas Bates, Rick Becker, Bill Cleveland, Trevor Hastie,
Daryl Pregibon et Allan Wilks, développe un langage de
programmation appelé S (la lettre S faisant référence à
Statistics). Il s’agit d’un langage permettant de manipuler les
données et d’effectuer des analyses statistiques et
graphiques. Ce langage S est devenu S+. Dans le milieu des
années 1990, Ross Ihaka et Robert Gentleman créent le R au
département de Statistiques de l’Université d’Auckland. Ce
langage et logiciel, inspiré du S et de Scheme est distribué
sous les termes de la GNU General Public Licence. La R
Development Core Team se charge de distribuer et de
développer le logiciel R. De nombreux contributeurs à travers
le monde participent au développement de R.
9.
Langage R :Installation
Dr. M. El Hamly : Langage R 9
• Le logiciel R est un freeware disponible sur le site
http://www.r-project.org
• Il existe des versions
– Windows
– MacOS X
– Linux
• Outils disponibles :
– un langage de programmation orienté objet
– des fonctions de "base"
– des librairies/packages complémentaires (des centaines sur
le site CRAN)
10.
R : audémarrage
• Le symbole > apparaît automatiquement en début de chaque
ligne de commandes.
• Le symbole + apparaît en début de ligne si la ligne précédente
est incomplète.
Dr. M. El Hamly : Langage R 10
11.
Utiliser l’aide :fonction help()
Dr. M. El Hamly : Langage R 11
• On utilise la fonction help
• help(plot) ou help("plot") ou help(’plot’)
• Ou bien :
• ?plot
• starting httpd help server ... Done
• L’argument de help est un nom de fonction de R.
• La commande help() avec pour argument le nom de la
fonction sur laquelle on désire une aide, génère une
rubrique d’aide avec l’information désirée.
12.
Utiliser l’aide :fonction help.search()
Dr. M. El Hamly : Langage R 12
• Quand on ignore le nom exact d’une fonction mais que
l’on pense le connaître en partie, on pourra chercher son
nom en utilisant la fonction help.search() ou un double
point d’interrogation ??
• help.search("plot")
• L’argument de help.search est un mot clé.
• Autre exemple :
• help.search("correlation")
• Ou bien :
• ??correlation
13.
Utiliser l’aide :fonction apropos()
Dr. M. El Hamly : Langage R 13
• Pour trouver toutes les fonctions dont le nom contient
une chaîne de caractères donnée, on peut utiliser la
fonction apropos() :
"as.logical"
• apropos("log")
• "as.data.frame.logical"
"as.logical.factor" "dlogis" "is.logical"
"log1p"
"Logic"
"loglin"
"rlogis"
"log"
"log2"
"logical"
"plogis"
"SSlogis"
"log10"
"logb"
"logLik"
"qlogis"
"winDialog"
"winDialogString"
14.
Utiliser l’aide: fonctiondemo()
Dr. M. El Hamly : Langage R 14
• Pour obtenir la liste des démos :
• demo()
• demo(graphics)
• Les exemples :
• La fonction example exécute les exemples
généralement inclus à la fin des fichiers d’aide
• Syntaxe : example(FUN)
• example(cor)
15.
Utiliser l’aide: fonctionhelp.start()
• On ouvre l’aide en ligne de toutes les fonctions installées
par help.start().
• help.start()
Dr. M. El Hamly : Langage R 15
16.
R : quelquesnotes
Dr. M. El Hamly : Langage R 16
• # Dans une ligne de commande, tout ce qui suit # est
ignoré, ce qui est utile pour les commentaires.
• Exemple :
• x = 1 # C’est une affectation.
• Ajouter un point virgule (;) en fin d’une commande et
poursuivre une autre commande sur la même ligne équivaut à
exécuter les deux commandes ligne par ligne.
• Exemple :
• a = 1 ; b = 2
• Si votre commande est trop longue pour la taille de la fenêtre
ou si elle est incomplète un signe + indique la continuité de
l’invite.
• > y = a*
• + b
17.
R : quelquesnotes
Dr. M. El Hamly : Langage R 17
• Souvent des commandes doivent être répétées, ou
légèrement modifiées. On peut naviguer dans les
commandes précédentes avec les touches et
.
• Une fois rappelée une commande, elle peut être
modifiée en se déplaçant dans la ligne : ou
.
• Toutes les variables (scalaires, vecteurs, matrices, etc.)
créées dans R sont appelées des objets.
• Dans R, on affecte des valeurs aux variables en utilisant
une flèche <- : taper les signes « inférieur » et « moins ».
• On peut également utiliser le signe =
• Par exemple on affectera le résultat du calcul 2×3 à la
variable x en utilisant la commande
18.
R : quelquesnotes
Dr. M. El Hamly : Langage R 18
• Pour examiner le contenu d’un objet quelconque de R il
suffit de taper son nom.
• Ainsi par exemple pour voir le contenu de x on tapera x
et on observera après avoir validé la commande avec un
retour chariot :
• x
• [1] 6
• Pour quitter R :
• q()
19.
Éditeur & Exécutionde R
Dr. M. El Hamly : Langage R 19
• On peut utiliser n’importe quel éditeur de texte, e.g., Bloc-
notes.
• On peut également utiliser l’éditeur de R-Studio.
• Sinon, on peut utiliser l’éditeur intégré de R.
Exécution de R :
• Syntaxe : source("nom-du-fichier.R") pour exécuter le code
contenu dans le fichier nom-du-fichier.R
• Exemple :
• source("read1.R")
• Q: Que donne l’instruction suivante ?
• source("read1")
20.
Librairies
Dr. M. ElHamly : Langage R 20
• Toutes les librairies ne sont pas chargées
automatiquement au lancement du logiciel R.
• library() retourne la liste des librairies
installées.
• library(LIB) charge la librairie LIB
• Exemple : library(stats)
• library(help = LIB) retourne la liste des
fonctions de la
librairie LIB.
• Exemple : library(help = stats)
• search(), searchpaths() retourne la liste des librairies
chargées.
21.
Objets
Dr. M. ElHamly : Langage R 21
• Il existe différents types d’objets dans R, comprenant entre
autres
des scalaires,
des matrices,
des tableaux,
des « data frame » (tableaux, similaires à des matrices, mais
dans lesquels les colonnes ne sont pas nécessairement de
même type),
des tables
et des listes.
• Dans R, la structure élémentaire d’objet est le vecteur.
• Dans ce cours, on utilisera surtout les objets suivants :
• vecteurs, matrices, data.frames, listes.
22.
Noms de variables
Dr.M. El Hamly : Langage R 22
• Quelques exemples de noms valides et invalides :
• foo = 5
• foo.123 = 5
• foo_123 = 5
• 123foo = 5
• .foo = 5
• .123foo = 5
# valide
#
valide
# valide
# invalide ; commence par un chiffre
# valide
# invalide ; point suivi d’un chiffre
23.
Opérations élémentaires
Dr. M.El Hamly : Langage R 23
• Opérations élémentaires sur les scalaires :
• +, −, *, /, ˆ
• 2 + 4
• 6
• Opérations avec affectation (sans affichage) :
• x = 2 + 4
• x
• 6
• Affectation avec affichage du résultat :
• (x = 2 + 4)
• 6
24.
Opérations élémentaires
Dr. M.El Hamly : Langage R 24
• Les opérations numériques s’effectuent en suivant les
ordres de priorité classiques (puissance avant
multiplication, et multiplication avant addition).
• Pour éviter les doutes il est toujours prudent de mettre
des parenthèses.
• Division entière :
• 7 %/% 2
• 3
• modulo :
• 7 %% 2
• 1
25.
Principaux types
Dr. M.El Hamly : Langage R 25
• Les principaux types sont
• réel
• complexe
• caractère
• logique : TRUE, FALSE
• NA (not available)
• Fonction typeof()
• x = 1.2
• typeof(x)
• "double"
26.
Valeurs particulières
Dr. M.El Hamly : Langage R 26
• NA (not available) valeur manquante
• 1/0
• Inf
• -1/0
• -Inf
• 0/0
• NaN Not a Number
• Note : Certains noms sont utilisés par le système R,
aussi vaut-il mieux éviter de les utiliser. En particulier,
éviter d’utiliser c, q, t, C, D, I, diff, length, mean, pi,
range, var
27.
Variable : pi
Dr.M. El Hamly : Langage R 27
• Variables prédéfinies :
• pi
• 3.141593
• print(pi, digits=10)
• 3.141592654
• print(pi, digits=20)
• 3.1415926535897931
• sin(pi) # Théoriquement, sin(pi) = 0
• 1.224606e-16 (N.B. C’est bien 1.224606 10-
16)
• cos(pi)
• -1
28.
Objets
Dr. M. ElHamly : Langage R 28
• Les objets de base sont
• vecteurs, matrices, data.frames, listes
• Quelques fonctions génériques :
• ls() retourne la liste des objets de la session.
• rm(a) supprime l’objet a.
• Q. Que fait la fonction list.files() ?
• Menu : Misc Effacer tous les objets :
• rm(list=ls(all=TRUE))
• N.B. Cette commande est très importante pour valider
un nouveau programme.
29.
Qu’en est-il dela casse ?
Dr. M. El Hamly : Langage R 29
• Attention !
• R différencie entre les lettres minuscules et les lettres
majuscules.
• i.e., R est sensible à la casse.
• Exécuter ce qui suit :
• x = 5
• 2*x
• 2*X
30.
Les objets R
Dr.M. El Hamly : Langage R 30
• 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 possèdent au minimum un mode et une longueur
et certains peuvent être dotés d’un ou plusieurs attributs.
• Le mode d’un objet est obtenu avec la fonction mode :
• x = c(1, 2, 5, 9)
• mode(x)
• "numeric"
• La longueur d’un objet est obtenue avec la fonction length :
• length(x)
• 4
31.
Attributs
Dr. M. ElHamly : Langage R 31
• Les attributs d’un objet sont des éléments d’information
additionnels liés à cet objet.
• Liste des attributs les plus fréquemment rencontrés :
• Attribut
• class
• dim
• dimnames
• names
Utilisation
affecte le comportement d’un objet
dimensions des matrices et tableaux
étiquettes des dimensions des
matrices et tableaux
étiquettes des éléments d’un objet
• Exemple : x = sample(1:100, 10)
• class(x) "integer"
• mode(x) "numeric"
32.
Attributs
Dr. M. ElHamly : Langage R 32
• Plus généralement, la fonction attributes() permet
d’extraire ou de modifier la liste des attributs d’un objet.
• On peut aussi travailler sur un seul attribut à la fois avec
la fonction attr().
• Les objets peuvent être dotés d’un ou plusieurs
attributs.
• Jeu de données intégré :
• data(cars)
• Liste de tous les attributs :
• attributes(cars)
• Extraction d’un seul attribut :
• attr(cars, "class")
• attributes(x) = NULL supprimer les attributs de x
33.
Fonctions is/as
Dr. M.El Hamly : Langage R 33
• is.xxx(obj) teste si obj est un objet de type xxx
• as.xxx(obj) contraint si possible obj au type d’objet xxx
où xxx représente un type d’objet (numeric, complex,
vector, matrix, character, etc.)
• x = 3
• is.numeric(x)
• TRUE
• is.complex(x)
• FALSE
• is.character(x)
• FALSE
34.
Fonctions is/as
Dr. M.El Hamly : Langage R 34
• x
• 3
• as.complex(x)
• 3+0i
• as.character(x)
• "3"
• Conversion de TRUE / FALSE en valeur numérique :
• as.integer(T) ou bien as.integer(TRUE)
• 1
• as.integer(F) ou bien as.integer(FALSE)
• 0
35.
Fonctions is/as
Dr. M.El Hamly : Langage R 35
• Exemple
• as.numeric(2+3i)
• 2
• Warning message:
• Les parties imaginaires sont perdues lors de la
conversion automatique.
• Q: Quelle est la différence entre une erreur et un
warning ?
36.
T, F
Dr. M.El Hamly : Langage R 36
• Le ET logique est vrai seulement lorsque les deux
expressions sont vraies :
• c(TRUE, TRUE, FALSE) & c(TRUE, FALSE,
FALSE)
• Le OU logique est faux seulement lorsque les deux
expressions sont fausses :
• c(TRUE, TRUE, FALSE) | c(TRUE, FALSE,
FALSE)
• La négation logique transforme les vrais en faux et vice
versa :
• ! c(TRUE, FALSE)
37.
T/F
Dr. M. ElHamly : Langage R 37
• Q : Expliquer ce qui suit :
• T + 2
• F + 5
• Conclusion :
• En météo, par exemple, pour le paramètre température,
il vaut mieux choisir une variable de nom temp ou
Temp ou carrément température, etc.
• Éviter donc la variable T.
• Éviter également la variable F.
• Exemple :
• température = 15.4
38.
Vecteurs : mélanged’objets
Dr. M. El Hamly : Langage R 38
• Si l’on mélange dans un même vecteur des objets de
mode différents, il y a conversion automatique vers le
mode pour lequel il y a le moins de perte d’information,
c’est-à-dire vers le mode qui permet le mieux de
retrouver la valeur originale des éléments.
# conversion en mode ’character’
# conversion en mode
’character’
• c(5, TRUE, FALSE) # conversion en mode ’numeric’
• c(5, "A")
• c(TRUE, "A")
• c(5, TRUE, "A" ) # conversion en mode ’character’
39.
Fonction : mode()
Dr.M. El Hamly : Langage R 39
• mode(3)
• "numeric"
• mode(3+2i)
• "complex"
• mode("ABcd")
• "character"
• mode(seq) # une fonction
• mode(list(5, "foo", TRUE)) # une liste
• mode(expression(x <- 5)) # une expression
non évaluée