SlideShare uma empresa Scribd logo
1 de 71
Baixar para ler offline
INITIATION AU
LOGICIEL R
Eric TCHAWALASSOU
Ingénieur Statisticien Economiste
Université de Lomé - Faculté des Sciences - Département de Mathématiques
Références du cours:
1. Le Logiciel R, Maitrisez le langage, Effectuez des analyses statistiques; Pierre Lafaye de Micheaux et all
Plan du cours : Première partie
1. Introduction
1. Présentation de R
2. Philosophie de R
2. Fonctionnement
1. Installation de R
2. La session de travail
3. Les différentes aides
4. Les objets R
5. Les fonctions
Plan du cours : deuxième partie
3. Manipulation des données
1. Importation des données
2. Exportation des résultats
3. Manipulation des variables
4. Manipulation des individus
5. Concaténer des tableaux de données
4. Programmation dans R
1. Structure de contrôle
2. Les fonctions prédéfinies
3. Construire une fonction
Introduction
1. Introduction
 R Logiciel Statistique
 Avantages de R
 Inconvénients de R
 Philosophie de R
R Logiciel Statistique
 R est un logiciel de statistique créé par Ross Ihaka & Robert Gentleman dans
les années 90.
 Il est à la fois un langage informatique et un environnement de travail : les
commandes sont exécutées grâce a des instructions codées dans un langage
relativement simple, les résultats sont affichés sous forme de texte et les
graphiques sont visualises directement dans une fenêtre qui leur est propre.
 Outil bien adapté pour la manipulation des données, les calculs matriciels,
l’analyse de données.
 Il est un clone du logiciel S-plus qui est fondé sur le langage orienté objet S.
Avantages de R
 Un logiciel multiplateforme
 Windows
 Linux
 Mac OS X
 Logiciel libre et gratuit
 Il est parfaitement possible d’utiliser R sans spécialement maîtriser cette
langue
 Logiciel très puissant à code source ouvert
 Logiciel dont le développement est très actif
 Logiciel avec d’excellentes capacités graphiques
 Il possède, un système de documentation intégré très bien conçu.
Inconvénients de R
 La documentation de référence et les principales ressources sont en anglais.
 R nécessite des machines relativement puissantes pour travailler sur de grosses
données de plusieurs milliers d’individus.
 Il nécessite un apprentissage continu pour maîtriser les syntaxes et les
commandes.
Philosophie de R
 En général, on ne voit pas les données sur lesquelles on travaille ;
 On ne dispose pas en permanence d’une vue des données sous forme de
tableau .
 Dans R, par défaut, l’affichage est réduit au minimum, et c’est l’utilisateur qui
demande à voir des résultats supplémentaires ou plus détaillés.
Fonctionnement
Installation de R
 R distribué par le CRAN (Compréhensive R Archive Network)
 Adresse : http://cran.rproject.org/
 L’installation varie selon les systèmes d’exploitation
 Les fonctionnalités sont exactement les mêmes d’un système à l’autre
 La plupart des programmes sont portables d’un système à l’autre
 L’installation de R est très facile, il suffit de suivre les instructions.
Session de travail
Pour ouvrir une session R :
 Sous Linux
 Taper la commande R dans une fenêtre de commandes.
 Indiquer le chemin du répertoire de travail.
 Sous Windows
 On clique sur l’icône R du bureau
 Taper R dans l’onglet Office (Rechercher les programmes et fichier)
 Sous Mac
 On clique sur l’icône R dans Applications , ou
 On se positionne dans le répertoire courant et on tape la comme R
Les différentes aides
 L’aide en ligne.
Pour l’afficher directement dans l’interface, on tape:
 help()
 ?
Pour l’afficher dans un navigateur au format HTML, on tape:
 help.start()
 L’aide sur le CRAN.
 RsiteSearch(“nom de la commande”)
Création d’objet
 La création d’un objet se fait par l’un des trois opérateurs
suivants:
 <-
 ->
 = (Pas du tout conseillé de l’utiliser)
Exemple:
1. B <- 41.3 # Attention, le séparateur décimal
doit être un point
2. X <- B
3. Y<- -5*(3.2)
Affichage et Suppression d’objets
 On affiche la valeur d’un objet via la commande:
 Print("nom de l’objet")
 Ou vous tapez simplement le nom de l’objet
 Pour connaître les objets de la session:
 objects()
 ls()
 Pour supprimer un ou plusieurs objets:
 rm()
Le type d’un objet
 Objet vide que nous notons nul :
 null
 Objet booléen que nous notons logique :
 logical
 Nombre réel que nous notons numérique :
 numeric
 Nombre complexe que nous notons complexe :
 complex
 Chaîne de caractères que nous notons caractère :
 character
Les vecteurs I
Le vecteur est un objet atomique, composé d’un ensemble de
valeurs. Différentes méthodes sont disponibles pour construire un
vecteur.
 Vecteurs numériques :
1. Construction par la fonction collecteur « c » :
 Exemple :
x <- c(5.6, -2, 78, 42.3) #vecteur de numériques
y <- c(x, 3, c(12, 8))
z <- y + 2 #Que remarquez vous?
2. Construction par l’opérateur séquence « : » :
 Exemple :
a <- 2:9
Les vecteurs II
3. Construction par la fonction séquence « seq » :
 Exemple :
b <- seq(1, 7, by = 0.5)
c <- seq(1, 6, length = 5)
4. Construction par la fonction « rep » :
 Exemple :
d <- rep(1, 4)
e <- rep(c(1, 2), each = 4)
5. Construction par la fonction « scan » :
 Exemple :
f <- scan(n = 4)
Les vecteurs
 Vecteurs de caractères :
Il est possible de créer des vecteurs de caractères de la même façon,
en utilisant les fonctions « c » ou « rep ».
 Exemple :
x <- c(‘A’, ‘BB’, ‘C1’)
y <- rep("A",5)
Il est aussi possible de créer des vecteurs de caractères grâce à la
commande « letters » qui contient les lettres de l’alphabet.
La commande « format » permet la mise en forme de données
numériques en chaîne de caractères de même longueur.
Pour la concaténation, on utilise la commande « paste » :
Les objets (Les vecteurs)
 Exemple :
1. letters[1:3]
2. paste(c(‘X’, ‘Y’), 1:5, ‘txt’, sep = ‘.’)
3. paste(c(‘X’, ‘Y’), 1:5, sep = ‘.’, collapse =‘+’)
4. substr(‘freerider’,5,9)
5. format(1:10, trim = TRUE)
6. format(c(6.0, 13.1), digits = 2, nsmall = 1)
Les vecteurs
 Vecteurs logiques :
Les vecteurs de booléens sont en général générés grâce à des
opérateurs logiques. Ils peuvent aussi être générés par les fonctions
seq, rep, c.
 Exemple :
x <- c(-1,0,2)
test <- x > 1
(1+x^2)*(x > 1)
Les commandes « all » ou « any » peuvent être également utilisé.
Les vecteurs
 Sélection d’une partie d’un vecteur :
Elle s’opère avec l’opérateur « [ ] » et un vecteur de
sélection.
 Exemple :
v <- 1:100
v[6]
v[2:10]
v[c(6,6,1:2)]
v[10:1]
Exercices 1
1) Créez un vecteur V contenant les 200 premiers nombres entiers
2) Faites un tirage de 20 éléments dans ce vecteur que vous
nommez Y
3) Créez Z égale à V sans ses 5 premiers éléments
4) Créez W égale à V sans son premier et son dixième élément
5) Faites ressortir A égale aux éléments de Z qui sont supérieurs à
10 et inférieur à 25.
6) Faites ressortir B égale aux éléments de Y qui sont supérieurs à
10 ou inférieur à 25.
7) Faites ressortir C égale aux éléments de Y qui sont supérieurs à
10 et inférieur à 5.
8) Recherchez la coordonnée du plus petit du vecteur de x.
Exercices 2
A. À l’aide des fonctions rep, seq et c seulement, générer les
séquences suivantes :
1) 0 6 0 6 0 6
2) 1 4 7 10
3) 1 1 1 2 2 3
4) 1 5.5 10
5) 1 1 1 1 2 2 2 2 3 3 3 3
B. Générer les suites de nombres suivantes à l’aide des fonctions c
et rep seulement :
1) 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2
2) 1 3 5 7 9 11 13 15 17 19
3) -2 -2 -1 -1 0 0 1 1 2 2
4) 10 20 30 40 50 60 70 80 90 100
Correction 1
1) V = 0:199
2) Y = sample(V, 20)
3) Z = V[-(1:5)]
4) W = V[-c(1,10)]
5) A = Z[(Z>10) & (Z<25)]
6) B = Z[(Y>10) | (Y<25)]
7) C = Z[(Y>10) & (Y<5)]
8) X = which(Y==min(Y)) ; which.min(Y) ;
(1:length(Y))[Y==min(Y)]
Les matrices, Création
Les matrices sont des objets atomiques, c’est-à-dire de même mode
ou type pour toutes les valeurs.
La fonction la plus utilisée pour créer une matrice est matrix qui
prend en arguments le vecteur d’éléments et le nombre de lignes ou
de colonnes de la matrice.
 Exemple :
M <- matrix(c(1,17,12,3,6,0), ncol=2)
A <- matrix(1:10, nrow=2)
B <- matrix(1:10, nrow=2, byrow=TRUE)
C <- matrix(1:4, nrow=3, ncol=3)
d <- seq(1, 10, by=2)
D <- as.matrix(d)
Les matrices, Sélection
L’emplacement d’un élément dans une matrice est en général donné
par le numéro de sa ligne et de sa colonne. Ainsi, pour sélectionner
l’élément (i,j) de la matrice m, il faut écrire: m[i,j]
Exercice 3
Soit A la matrice carrée définie par les 16 premiers nombres impairs
1) Créer A
2) Sélectionner la deuxième colonne de A, que vous nommez B
3) Sélectionner la troisième ligne de A, que vous nommez C
4) Créer la matrice D égale à A sans sa première ligne
5) Sélectionner les colonnes de A pour lesquelles la valeur sur la
première ligne de A est strictement supérieur à 2.
Calcul sur les matrices
Fonctions utiles
Fonction Description
%*% Produit matriciel
t(…) Transposition d’une matrice
diag(…) Matrice identité d’ordre …
diag(vec) Matrice diagonale avec les valeurs du vecteur vec dans la diagonale
crossprod( , ) Produit croisé
det() Déterminant d’une matrice
solve() Inversion de matrice
svd() Décomposition en valeurs singulières
eigen() Diagonalisation d’une matrice
solve( , ) Résolution de système linéaire
chol() Décomposition de cholesky
qr() Décomposition QR
Exercice 4
A. Soient M et N deux matrices carrées à deux colonnes
1) Créer M et N
2) Créer L la matrice égale au produit croisé de N et M
3) Créer A égale au produit matriciel de M et de la transposée de N
4) Que remarquez-vous de L et A
5) Diagonaliser A
6) Résoudre l’équation Az = V, avec V = (1,2)
B. Soit la matrice : X <- matrix(1:120,ncol=12)
1) Affichez toutes les lignes de la matrice commençant par un nombre pair
2) Affichez toutes les lignes de la matrice dont la moyenne est inférieure à 60.
3) Sélectionnez la sous-matrice formée des lignes de la matrice dont la moyenne
est inférieure à 60 et des colonnes dont la somme est inférieure à 500
4) Sélectionnez la même sous-matrice, sauf la troisième ligne.
Les matrices, Opérations sur les lignes
et colonnes
Il est possible de concaténer plusieurs vecteurs en ligne ou en
colonne avec les fonctions rbind et cbind pour en faire une matrice.
 Exemple :
M <- cbind(c(1,17,12,3,6,0), c(1,0,0,5,-2,1))
A <- cbind(c(1,1,1), c(0,1,1), c(0,0,1))
B <- rbind(c(1,1,1), c(0,1,1), c(0,0,1))
La fonction apply permet d’appliquer une fonction f aux lignes ou
aux colonnes de la matrice.
 Exemple :
apply(A, MARGIN=2, sum)
Les facteurs
Les facteurs sont des vecteurs permettant la manipulation de
données qualitatives. La longueur est donnée par la fonction length,
le mode par mode et les modalités du facteur par levels.
Ils forment une classe d’objets et bénéficient de traitements
particuliers pour certaines fonctions, telle la fonction plot pour les
graphiques.
Trois fonctions permettent de créer les facteurs :
1. La fonction factor :
Sexe<-factor(c(‘M’,’M’,’F’,’M’,’F’,’M’,’M’,’M’))
2. La fonction ordered : Niveau <- ordered(c(‘débutant’, ‘moyen’,
‘champion’), levels=c(‘débutant’, ‘moyen’, ‘champion’))
Les facteurs
3. La fonction as.factor : salto <- c(1:5, 5:1) ; salto.f <-
as.factor(salto)
Exemple:
1. X <- factor(c("bleu", "vert", "bleu", "rouge","bleu" , "vert" ,
"vert"))
2. levels(X)
3. class(X)
Les listes
La liste est un objet hétérogène. C’est un ensemble
ordonnée d’objets qui n’ont pas toujours le même mode
ou la même longueur. Les objets sont appelés
« composantes de la liste ».
Les listes ont les deux attributs des vecteurs (length et
mode) et l’attribut supplémentaire names.
Les listes sont des objets importants car toutes les
fonctions qui retournent plusieurs objets le font sous la
forme d’une liste.
Les listes, Création
Les listes se créent avec la fonction list. Mais, il faudrait
au par avant définir les arguments qui interviendront
dans la liste.
 Exemple :
V <- seq(2,10, by=3)
A <- matrix(1:8, ncol=2)
B <- factor(c(‘M’,’M’,’F’,’M’,’F’,’M’,’M’))
O <- ordered(c(‘débutant‘,'moyen’,‘champion’))
maliste <- list(V,A,B,O)
Pour nommer la liste, on utilise la fonction names.
Les listes, Extraction
Pour extraire une composante de la liste, on peut toujours le faire
en indiquant la position de l’élément que l’on souhaite extraire. Les
[[…]] permettent de retourner l’élément de la liste :
 Exemple :
maliste[[2]]
maliste[[1]]
On peut aussi utiliser le nom de l’élément s’il existe, ce que l’on peut
écrire de deux façons :
maliste[[‘…’]]
maliste$...
Les listes, Extraction (Suite)
Il est possible d’extraire plusieurs éléments d’une même liste,
ce qui crée une sous-liste. Noter qu’ici, on utilise […] et non
[[…]]. Exemple : maliste[c(1,3)]
La liste dimnames.
C’est un attribut optionnel d’une matrice qui contient dans
une liste à deux composantes les noms des lignes et des
colonnes.
 Exemple : x <- matrix(1:12, nrow=3, ncol=4)
nomlign <- c(‘ligne1’,’ligne2’,’ligne3’)
nomcol <- c(‘colonne1’,’colonne2’,’colonne3’, ‘colonne4’)
dimnames(x) <- list(nomlign, nomcol)
Les data-frames
Les data-frames sont des listes particulières dont les composantes sont
de même longueur, mais les modes peuvent être différents.
Les tableaux de données usuellement utilisés en statistique sont souvent
considérés comme des data-frames.
Les principales manières de créer un data-frame consistent à utiliser les
fonctions suivantes :
1. data.frame qui permet de concaténer des vecteurs de même taille et
éventuellement de modes différents
2. read.table qui permet de lire un tableau de données
3. as.data.frame qui permet de transformer une matrice, une liste, … en
data-frame
Exercice 5
1. IMC <- data. frame (Sexe=c ("H", "F", "H", "F", "H", "F") ,
+ Taille=c(1.83,1.76,1.82,1.60,1.90,1.66),
+ Poids=c(67,58,66,48,75,55),
+ row.names=c ("Remy", "Franck", "Pierre", "Domi", "Ben",
"Cecile"))
2. Créer le tableau suivant :
Les fonctions
Une fonction est un objet R. Un grand nombre de fonctions sont
prédéfinies dans R, cependant, il est possible de créer ses propres
fonctions.
Une fonction admet des arguments en entrée et retourne un résultat en
sortie.
Les arguments d’une fonction sont soient obligatoires soient
optionnels. Dans ce dernier cas, ils possèdent une valeur par défaut.
 Exemple : la fonction rnorm()
Cette fonction admet trois arguments; n le nombre de valeurs à générer,
mean la moyenne et sd l’écart type. Ces deux derniers sont fixés à 0 et 1
par défaut.
Les fonctions
La plupart des fonctions retournent plusieurs résultats et l’ensemble de
ces résultats est contenu dans une liste.
Pour visualiser l’ensemble des sorties, il est nécessaire de connaître
l’ensemble des éléments de la liste en utilisant la fonction names.
Exercices
I. Création et inversion d’une matrice
1. Créer la matrice suivante:
𝐴 =
1 5 5 0
0 5 6 1
3 0 3 1
4 4 4 2
2. Nommer les lignes et les colonnes de cette matrice. La
ième ligne sera nommée Li et la jème colonne Cj.
3. Calculer le déterminant puis inverser la matrice en
utilisant les fonctions appropriées.
Exercices
I. Création et inversion d’une matrice
II. Sélection dans un data-frames
1. A partir du jeu de données iris disponible sous R, créer
un sous-jeu de données comportant uniquement les
données de la modalité versicolor de la variable species.
Appeler ce nouveau jeu de données iris2.
2. Trier par ordre décroissant les données de iris2 en
fonction de la variable Sepal.Length (utiliser la fonction
order).
Deuxième partie
Manipulation des données
Importer des données
Il existe trois fonctions principales pour importer un fichier texte
dans R. Ces fonctions sont récapitulées dans le tableau suivant:
1. L’instruction read.table()
Cette instruction permet de lire des données présente dans un fichier
(à sélectionner à partir d’une fenêtre de dialogue) et les rapatrier dans
R sous la forme d’un data.frame. Elle contient plusieurs paramètres
qui sont décrits dans le tableau suivant :
Importer des données
read.table(file=file.choose(), header=T, sep="t", dec=".", row.names=1)
Lors de l’utilisation de la fonction read.table, il est nécessaire de
spécifier la valeur du paramètre file qui doit contenir dans une chaine
de caractère, le nom du fichier ainsi que son chemin d’accès complet.
Exercice 1
Nous sommes en présence de la variable qualitative suivante:
Xqual=factor(c(rep(‘A’,60),rep(‘B’,20),rep(‘C’,17),rep(‘D’,3)))
1. Calculer les fréquences de chaque modalité
2. Afficher à l’écran l’intitulé des modalités dont l’effectif est inférieur à
5% de l’effectif total
3. Calculer les fréquences de chaque modalité sans la modalité de la
question précédente. Le résultat sera mis dans un vecteur proba
4. Sélectionner les individus prenant la modalité de la question 2. Leur
donner une valeur parmi les modalités restantes, selon un tirage dont
les probabilités sont calculées en question 3.
Exercice 2
1. Créez un dossier nommé DossierData_N°Groupe sur votre bureau à
partir de la commande setwd( ).
2. Téléchargez le fichier se trouvant à l’adresse suivante :
http://www.biostaticticien.eu/springR/Intima_Media.txt et sauvez
le dans votre dossier.
3. Utilisez la fonction readlines( ) pour visualiser le début de ce fichier.
4. Importez le fichier
5. Calculez l’âge moyen et la variance des tailles
Importer des données
2. L’instruction read.ftable( )
Il arrive parfois que l’on ne dispose pas de toutes les données
individuelles, mais uniquement d’un résumé présenté sous la forme
d’un tableau de contingence. Dans ce cas, il faut utiliser la fonction
d’importation read.ftable( ).
Supposons que le fichier Intima se présente comme suit :
On utilisera l’instruction suivante: Intima.table<-
read.ftable(« Intima_ftable.txt,row.var.names=c("SEXEE","tabac"),col.vars=list("alcool"=c
("ne boit pas","boit obligatoirement", "boit régulièrement")))
Importer des données
3. L’instruction scan( )
La fonction scan( ) possède de très nombreux paramètres et elle est à
privilégier lorsque les données ne sont pas organisées sous la forme
d’un tableau rectangulaire. Prière consulter la documentation à
son sujet.
Supposons que le fichier Intima se présente comme suit :
Les commandes conseillées pour lire ce fichier sont :
Importer des données
Exporter des données
Pour exporter des données, on utilise la commande write.table( ).
On peut exporter des fichiers sous format txt ou csv et également
dans Excel.
 Exemple :
write.table(tablo,"nomfichier.txt",sep=";")
write.table(tablo,"nomfichier.csv",sep="t")
Tapez les commandes suivantes:
Ouvrez Excel ou OpenOffice Calc et faites ctrl+v.
Que remarquez-vous?
Fonctions mathématiques de base
Fonctions mathématiques de base
Fonctions mathématiques de base
Statistiques descriptives
Nous allons fonder tous nos exemples sur le fichier de données
nutriage.xls que vous pouvez télécharger à l’emplacement suivant :
http://www.biostatisticien.eu/springR /nutriage.xls
1. Importez le fichier dans votre dossier.(utilisez le package gdata pour
pouvoir utiliser read.xls)
2. Observer les 5 premières lignes du fichier.
3. Recodez les modalités de la variable sexe en utilisant la fonction
levels ( ).
4. Effectuez un tri à plat en effectif sur la variable matgras.
5. Effectuez un tri à plat en fréquence sur la variable matgras.
Graphiques
1. Diagramme en croix
Le diagramme en croix affiche pour chaque observation une petite barre
horizontale dans la colonne de la modalité correspondante. Il n’est pas
intégré au logiciel R, mais nous pouvons le programmer au moyen de la
fonction plot( ) et de son paramètre pch. La fonction obtenue sera
appelée diagcroix( ).  A développer dans la partie Programmation.
2. Diagramme en points
Le diagramme en points s’obtient par l’utilisation de la fonction
dotchart( ) couplé à la fonction table( ). Prenez l’exemple suivant:
Graphiques
3. Diagramme en tuyaux d’orgue
Il s’obtient à partir de la fonction barplot( ). Vous pouvez également
prendre l’exemple suivant:
4. Diagramme de Pareto
Son obtention se fait également à partir de la fonction barplot( ). Prenez
l’exemple suivant :
Graphiques
5. Diagramme empilé
Il s’obtient également à partir de la fonction barplot( ) en fournissant
un objet de type matrix comme premier paramètre effectif.
Exemple:
Graphiques
6. Diagramme circulaire
Il s’obtient à partir de la fonction pie( ).
Exemple:
Require("RColorBrewer")
col<- brewer.pal(8,« Paste12")
pie(table(matgras),col=col)
7. Diagramme tuyaux d’orgue avec fréquence cumulée
Il s’obtient en couplant les fonctions barplot( ) et points( ).
Graphiques
8. Diagramme en bâton
Il s’obtient à partir de la fonction plot( ) appliquée à un tableau de
contingence.
9. Graphe de la fonction de répartition empirique
Il s’obtient en couplant les fonctions plot( ) et ecdf( ).
Graphiques
10. Boîte à moustaches
Elle s’obtient à partir de la fonction boxplot( ).
11. Histogramme
Il s’obtient à partir de la fonction hist( ).
Programmation sous R
Structures de contrôle
Commandes groupées
Un groupe de commande est comme une parenthèse en
mathématique: les commandes groupées sont effectuées ensemble.
Sous R, le groupe de commande est délimité par des accolades:
{
+expr1
+expr2
+…
+}
Deux commandes successives sont séparées par un retour à la ligne.
Cependant, il est possible de séparer deux commandes en les
conservant sur une même ligne.
Structures de contrôle
Les boucles for ou while
Les boucles classiques sont disponibles sous R.
 Boucle for
De manière générale, la boucle for s’écrit :
for (i in vecteur) {
+expr1
+ …
+}
 Exemple :
for(i in 1:99) print(i)
for(i in seq(1,99,by=2)) print(i)
Structures de contrôle
 Boucle while
De manière générale, la boucle while s’écrit :
while (condition) {
+expr1
+ …
+}
 Exemple :
i=1
while(i<3) {
print(i)
i=i+1}
Structures de contrôle
Conditions if
Il s’agit d’exécuter un ordre sous condition : l’ordre est exécuté si et
seulement si la condition est vraie. Il s’écrit plus généralement :
if (condition) {
+expr1
+ …
+}
 Exemple :
i=1
repeat{
print(i)
i=i+1
if(i>3) break}
Structures de contrôle
Conditions if, else
Il s’agit d’exécuter un ordre sous condition : l’ordre est exécuté si et
seulement si la condition est vraie. Il s’écrit plus généralement :
if (condition) {
+expr1
+ …
+} else{
+ exprn
+…
+}
Exemple
Prenons la définition de la variance d'un échantillon de
taille n d'une variable continue X.
Dans un langage de programmation classique, nous écririons
quelque chose du type :
Exemple
Dans R nous pouvons immédiatement travailler sur les
vecteurs et donc utiliser la syntaxe suivante:
Exercices
1. Écrire le programme permettant de retourner la valeur absolue
d’un nombre. (Fonction valeur absolue)
2. Ecrire le programme permettant de retourner l’inverse d’une
valeur.
3. Ecrire le programme permettant de faire la composée des deux
fonctions précédentes.

Mais conteúdo relacionado

Mais procurados

La complexité des algorithmes récursives Géométrie algorithmique
La complexité des algorithmes récursivesGéométrie algorithmiqueLa complexité des algorithmes récursivesGéométrie algorithmique
La complexité des algorithmes récursives Géométrie algorithmiqueHajer Trabelsi
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancépierrepo
 
Management des risques
Management des risques Management des risques
Management des risques Pasteur_Tunis
 
Chapitre 4 les structures organisationnelles
Chapitre 4  les structures organisationnellesChapitre 4  les structures organisationnelles
Chapitre 4 les structures organisationnellesAnass Elhabti Idrissi
 
Gestion unite de soins chnitef abdelhaq-hsr-rabat
Gestion unite de soins chnitef abdelhaq-hsr-rabatGestion unite de soins chnitef abdelhaq-hsr-rabat
Gestion unite de soins chnitef abdelhaq-hsr-rabatabdelhaq chnitef
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniShellmates
 
Traitement d'image sous Matlab
Traitement d'image sous Matlab  Traitement d'image sous Matlab
Traitement d'image sous Matlab Hajer Dahech
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siNarûtö Bàl'Sèm
 
Management des risques
Management des risquesManagement des risques
Management des risquesyounes elhaiba
 
Formation python
Formation pythonFormation python
Formation pythonj_lipaz
 
Expression des besoins pour le SI
Expression des besoins pour le SIExpression des besoins pour le SI
Expression des besoins pour le SINouhaila ALAMI
 
5.3 Régression logistique
5.3 Régression logistique5.3 Régression logistique
5.3 Régression logistiqueBoris Guarisma
 
03 - La Fiabilité.pdf
03 - La Fiabilité.pdf03 - La Fiabilité.pdf
03 - La Fiabilité.pdfAyoubBouelam
 
Cours de Gestion des risques
Cours de Gestion des risquesCours de Gestion des risques
Cours de Gestion des risquesRémi Bachelet
 
Exemple d’un plan d’action en matière de prévention et de lutte contre les i...
Exemple d’un plan d’action en matière de prévention et de lutte  contre les i...Exemple d’un plan d’action en matière de prévention et de lutte  contre les i...
Exemple d’un plan d’action en matière de prévention et de lutte contre les i...Ibnelafif Samir
 
Présentation sur le Data Mining
Présentation sur le Data MiningPrésentation sur le Data Mining
Présentation sur le Data MiningTakfarinas KENOUCHE
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French CourseHaytam EL YOUSSFI
 
Correction examen-java-avancé-1
Correction examen-java-avancé-1Correction examen-java-avancé-1
Correction examen-java-avancé-1vangogue
 

Mais procurados (20)

COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
 
La complexité des algorithmes récursives Géométrie algorithmique
La complexité des algorithmes récursivesGéométrie algorithmiqueLa complexité des algorithmes récursivesGéométrie algorithmique
La complexité des algorithmes récursives Géométrie algorithmique
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancé
 
Management des risques
Management des risques Management des risques
Management des risques
 
Chapitre 4 les structures organisationnelles
Chapitre 4  les structures organisationnellesChapitre 4  les structures organisationnelles
Chapitre 4 les structures organisationnelles
 
Gestion unite de soins chnitef abdelhaq-hsr-rabat
Gestion unite de soins chnitef abdelhaq-hsr-rabatGestion unite de soins chnitef abdelhaq-hsr-rabat
Gestion unite de soins chnitef abdelhaq-hsr-rabat
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
 
Traitement d'image sous Matlab
Traitement d'image sous Matlab  Traitement d'image sous Matlab
Traitement d'image sous Matlab
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 si
 
Management des risques
Management des risquesManagement des risques
Management des risques
 
Formation python
Formation pythonFormation python
Formation python
 
Expression des besoins pour le SI
Expression des besoins pour le SIExpression des besoins pour le SI
Expression des besoins pour le SI
 
Le role de siaap
Le role de siaapLe role de siaap
Le role de siaap
 
5.3 Régression logistique
5.3 Régression logistique5.3 Régression logistique
5.3 Régression logistique
 
03 - La Fiabilité.pdf
03 - La Fiabilité.pdf03 - La Fiabilité.pdf
03 - La Fiabilité.pdf
 
Cours de Gestion des risques
Cours de Gestion des risquesCours de Gestion des risques
Cours de Gestion des risques
 
Exemple d’un plan d’action en matière de prévention et de lutte contre les i...
Exemple d’un plan d’action en matière de prévention et de lutte  contre les i...Exemple d’un plan d’action en matière de prévention et de lutte  contre les i...
Exemple d’un plan d’action en matière de prévention et de lutte contre les i...
 
Présentation sur le Data Mining
Présentation sur le Data MiningPrésentation sur le Data Mining
Présentation sur le Data Mining
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
 
Correction examen-java-avancé-1
Correction examen-java-avancé-1Correction examen-java-avancé-1
Correction examen-java-avancé-1
 

Destaque

Analyse de données avec R : Une petite introduction
Analyse de données avec R : Une petite introductionAnalyse de données avec R : Une petite introduction
Analyse de données avec R : Une petite introductionAhmadou DICKO
 
Analyse de données marketing : ACP et AFC
Analyse de données marketing : ACP et AFCAnalyse de données marketing : ACP et AFC
Analyse de données marketing : ACP et AFCYannig Roth
 
Herve aide-memoire-statistique r
Herve aide-memoire-statistique rHerve aide-memoire-statistique r
Herve aide-memoire-statistique rDies Diassa
 
NOISE: Statistiques exploratoires avec R
NOISE: Statistiques exploratoires avec RNOISE: Statistiques exploratoires avec R
NOISE: Statistiques exploratoires avec RChristian Robert
 
Comptabilité Nationale avec R
Comptabilité Nationale avec RComptabilité Nationale avec R
Comptabilité Nationale avec RCdiscount
 
Sujets de pfe pour etudiants en grh
Sujets de  pfe pour etudiants en  grhSujets de  pfe pour etudiants en  grh
Sujets de pfe pour etudiants en grhezzeddine mbarek
 
Projet de fin d'études licence Pro TCF Université Ibn Zohr Agadir {Gestion de...
Projet de fin d'études licence Pro TCF Université Ibn Zohr Agadir {Gestion de...Projet de fin d'études licence Pro TCF Université Ibn Zohr Agadir {Gestion de...
Projet de fin d'études licence Pro TCF Université Ibn Zohr Agadir {Gestion de...HAFID Ait Bihi
 
Outils cartographiques et en statistique spatiale sur R
Outils cartographiques et en statistique spatiale sur ROutils cartographiques et en statistique spatiale sur R
Outils cartographiques et en statistique spatiale sur RFrançois Guillem
 
Editeur de circuit de train sur un canvas Html5
Editeur de circuit de train sur un canvas Html5Editeur de circuit de train sur un canvas Html5
Editeur de circuit de train sur un canvas Html5François Crevola
 
Barometre emploi jobtransport_sept2013
Barometre emploi jobtransport_sept2013Barometre emploi jobtransport_sept2013
Barometre emploi jobtransport_sept2013emploi
 

Destaque (20)

Analyse de données avec R : Une petite introduction
Analyse de données avec R : Une petite introductionAnalyse de données avec R : Une petite introduction
Analyse de données avec R : Une petite introduction
 
Analyse de données marketing : ACP et AFC
Analyse de données marketing : ACP et AFCAnalyse de données marketing : ACP et AFC
Analyse de données marketing : ACP et AFC
 
Atelier r-gerad
Atelier r-geradAtelier r-gerad
Atelier r-gerad
 
Herve aide-memoire-statistique r
Herve aide-memoire-statistique rHerve aide-memoire-statistique r
Herve aide-memoire-statistique r
 
NOISE: Statistiques exploratoires avec R
NOISE: Statistiques exploratoires avec RNOISE: Statistiques exploratoires avec R
NOISE: Statistiques exploratoires avec R
 
Comptabilité Nationale avec R
Comptabilité Nationale avec RComptabilité Nationale avec R
Comptabilité Nationale avec R
 
R Devtools
R DevtoolsR Devtools
R Devtools
 
R versur Python
R versur PythonR versur Python
R versur Python
 
Sujets de pfe pour etudiants en grh
Sujets de  pfe pour etudiants en  grhSujets de  pfe pour etudiants en  grh
Sujets de pfe pour etudiants en grh
 
Projet de fin d'études licence Pro TCF Université Ibn Zohr Agadir {Gestion de...
Projet de fin d'études licence Pro TCF Université Ibn Zohr Agadir {Gestion de...Projet de fin d'études licence Pro TCF Université Ibn Zohr Agadir {Gestion de...
Projet de fin d'études licence Pro TCF Université Ibn Zohr Agadir {Gestion de...
 
Outils cartographiques et en statistique spatiale sur R
Outils cartographiques et en statistique spatiale sur ROutils cartographiques et en statistique spatiale sur R
Outils cartographiques et en statistique spatiale sur R
 
ISH 2011 Messe Frankfurt : (French)
ISH 2011 Messe Frankfurt : (French)ISH 2011 Messe Frankfurt : (French)
ISH 2011 Messe Frankfurt : (French)
 
Editeur de circuit de train sur un canvas Html5
Editeur de circuit de train sur un canvas Html5Editeur de circuit de train sur un canvas Html5
Editeur de circuit de train sur un canvas Html5
 
Barometre emploi jobtransport_sept2013
Barometre emploi jobtransport_sept2013Barometre emploi jobtransport_sept2013
Barometre emploi jobtransport_sept2013
 
PR #29
PR #29PR #29
PR #29
 
Le questionnaire a choix multiples
Le questionnaire a choix multiplesLe questionnaire a choix multiples
Le questionnaire a choix multiples
 
Particulier
ParticulierParticulier
Particulier
 
Je suis ton Dieu
Je suis ton DieuJe suis ton Dieu
Je suis ton Dieu
 
Calendario ambiental
Calendario ambiental Calendario ambiental
Calendario ambiental
 
Guide exposants 2013
Guide exposants 2013Guide exposants 2013
Guide exposants 2013
 

Semelhante a Initiation r

Semelhante a Initiation r (20)

Cours de Matlab
Cours de MatlabCours de Matlab
Cours de Matlab
 
Mat lab1
Mat lab1Mat lab1
Mat lab1
 
Visual studio
Visual studioVisual studio
Visual studio
 
mis
mismis
mis
 
Ebook matlab
Ebook matlabEbook matlab
Ebook matlab
 
Cours langage c
Cours langage cCours langage c
Cours langage c
 
Data Mining (Partie 2).pdf
Data Mining (Partie 2).pdfData Mining (Partie 2).pdf
Data Mining (Partie 2).pdf
 
Tp2 matlab
Tp2 matlab Tp2 matlab
Tp2 matlab
 
FormationPython2019.pptx
FormationPython2019.pptxFormationPython2019.pptx
FormationPython2019.pptx
 
syntax-matlab.pdf
syntax-matlab.pdfsyntax-matlab.pdf
syntax-matlab.pdf
 
Chap 1 Initiation.pptx
Chap 1 Initiation.pptxChap 1 Initiation.pptx
Chap 1 Initiation.pptx
 
Cours programmation en langage C.pdf
Cours  programmation  en  langage  C.pdfCours  programmation  en  langage  C.pdf
Cours programmation en langage C.pdf
 
Tp01
Tp01Tp01
Tp01
 
Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de données
 
Tp1 matlab
Tp1 matlab Tp1 matlab
Tp1 matlab
 
Vbisigk
VbisigkVbisigk
Vbisigk
 
eExercices corrigesdivers
eExercices corrigesdiverseExercices corrigesdivers
eExercices corrigesdivers
 
Exercicescorrigesdivers
ExercicescorrigesdiversExercicescorrigesdivers
Exercicescorrigesdivers
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulières
 
Les vecteurs seconde2020.pdf
Les vecteurs seconde2020.pdfLes vecteurs seconde2020.pdf
Les vecteurs seconde2020.pdf
 

Último

ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel AttalELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attalcontact Elabe
 
Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023France Travail
 
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...France Travail
 
To_understand_transformers_together presentation
To_understand_transformers_together presentationTo_understand_transformers_together presentation
To_understand_transformers_together presentationbahija babzine
 
Bidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from TransformersBidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from Transformersbahija babzine
 
analyse husseindey AMIROUCHE Abdeslem.pptx
analyse husseindey AMIROUCHE Abdeslem.pptxanalyse husseindey AMIROUCHE Abdeslem.pptx
analyse husseindey AMIROUCHE Abdeslem.pptxHadJer61
 

Último (6)

ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel AttalELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
ELABE BFMTV L'Opinion en direct - Les Français et les 100 jours de Gabriel Attal
 
Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023Le contrôle de la recherche d'emploi en 2023
Le contrôle de la recherche d'emploi en 2023
 
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
Montant moyen du droit d'allocation chômage versé aux demandeurs d'emploi ind...
 
To_understand_transformers_together presentation
To_understand_transformers_together presentationTo_understand_transformers_together presentation
To_understand_transformers_together presentation
 
Bidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from TransformersBidirectional Encoder Representations from Transformers
Bidirectional Encoder Representations from Transformers
 
analyse husseindey AMIROUCHE Abdeslem.pptx
analyse husseindey AMIROUCHE Abdeslem.pptxanalyse husseindey AMIROUCHE Abdeslem.pptx
analyse husseindey AMIROUCHE Abdeslem.pptx
 

Initiation r

  • 1. INITIATION AU LOGICIEL R Eric TCHAWALASSOU Ingénieur Statisticien Economiste Université de Lomé - Faculté des Sciences - Département de Mathématiques Références du cours: 1. Le Logiciel R, Maitrisez le langage, Effectuez des analyses statistiques; Pierre Lafaye de Micheaux et all
  • 2. Plan du cours : Première partie 1. Introduction 1. Présentation de R 2. Philosophie de R 2. Fonctionnement 1. Installation de R 2. La session de travail 3. Les différentes aides 4. Les objets R 5. Les fonctions
  • 3. Plan du cours : deuxième partie 3. Manipulation des données 1. Importation des données 2. Exportation des résultats 3. Manipulation des variables 4. Manipulation des individus 5. Concaténer des tableaux de données 4. Programmation dans R 1. Structure de contrôle 2. Les fonctions prédéfinies 3. Construire une fonction
  • 5. 1. Introduction  R Logiciel Statistique  Avantages de R  Inconvénients de R  Philosophie de R
  • 6. R Logiciel Statistique  R est un logiciel de statistique créé par Ross Ihaka & Robert Gentleman dans les années 90.  Il est à la fois un langage informatique et un environnement de travail : les commandes sont exécutées grâce a des instructions codées dans un langage relativement simple, les résultats sont affichés sous forme de texte et les graphiques sont visualises directement dans une fenêtre qui leur est propre.  Outil bien adapté pour la manipulation des données, les calculs matriciels, l’analyse de données.  Il est un clone du logiciel S-plus qui est fondé sur le langage orienté objet S.
  • 7. Avantages de R  Un logiciel multiplateforme  Windows  Linux  Mac OS X  Logiciel libre et gratuit  Il est parfaitement possible d’utiliser R sans spécialement maîtriser cette langue  Logiciel très puissant à code source ouvert  Logiciel dont le développement est très actif  Logiciel avec d’excellentes capacités graphiques  Il possède, un système de documentation intégré très bien conçu.
  • 8. Inconvénients de R  La documentation de référence et les principales ressources sont en anglais.  R nécessite des machines relativement puissantes pour travailler sur de grosses données de plusieurs milliers d’individus.  Il nécessite un apprentissage continu pour maîtriser les syntaxes et les commandes.
  • 9. Philosophie de R  En général, on ne voit pas les données sur lesquelles on travaille ;  On ne dispose pas en permanence d’une vue des données sous forme de tableau .  Dans R, par défaut, l’affichage est réduit au minimum, et c’est l’utilisateur qui demande à voir des résultats supplémentaires ou plus détaillés.
  • 11. Installation de R  R distribué par le CRAN (Compréhensive R Archive Network)  Adresse : http://cran.rproject.org/  L’installation varie selon les systèmes d’exploitation  Les fonctionnalités sont exactement les mêmes d’un système à l’autre  La plupart des programmes sont portables d’un système à l’autre  L’installation de R est très facile, il suffit de suivre les instructions.
  • 12. Session de travail Pour ouvrir une session R :  Sous Linux  Taper la commande R dans une fenêtre de commandes.  Indiquer le chemin du répertoire de travail.  Sous Windows  On clique sur l’icône R du bureau  Taper R dans l’onglet Office (Rechercher les programmes et fichier)  Sous Mac  On clique sur l’icône R dans Applications , ou  On se positionne dans le répertoire courant et on tape la comme R
  • 13. Les différentes aides  L’aide en ligne. Pour l’afficher directement dans l’interface, on tape:  help()  ? Pour l’afficher dans un navigateur au format HTML, on tape:  help.start()  L’aide sur le CRAN.  RsiteSearch(“nom de la commande”)
  • 14. Création d’objet  La création d’un objet se fait par l’un des trois opérateurs suivants:  <-  ->  = (Pas du tout conseillé de l’utiliser) Exemple: 1. B <- 41.3 # Attention, le séparateur décimal doit être un point 2. X <- B 3. Y<- -5*(3.2)
  • 15. Affichage et Suppression d’objets  On affiche la valeur d’un objet via la commande:  Print("nom de l’objet")  Ou vous tapez simplement le nom de l’objet  Pour connaître les objets de la session:  objects()  ls()  Pour supprimer un ou plusieurs objets:  rm()
  • 16. Le type d’un objet  Objet vide que nous notons nul :  null  Objet booléen que nous notons logique :  logical  Nombre réel que nous notons numérique :  numeric  Nombre complexe que nous notons complexe :  complex  Chaîne de caractères que nous notons caractère :  character
  • 17. Les vecteurs I Le vecteur est un objet atomique, composé d’un ensemble de valeurs. Différentes méthodes sont disponibles pour construire un vecteur.  Vecteurs numériques : 1. Construction par la fonction collecteur « c » :  Exemple : x <- c(5.6, -2, 78, 42.3) #vecteur de numériques y <- c(x, 3, c(12, 8)) z <- y + 2 #Que remarquez vous? 2. Construction par l’opérateur séquence « : » :  Exemple : a <- 2:9
  • 18. Les vecteurs II 3. Construction par la fonction séquence « seq » :  Exemple : b <- seq(1, 7, by = 0.5) c <- seq(1, 6, length = 5) 4. Construction par la fonction « rep » :  Exemple : d <- rep(1, 4) e <- rep(c(1, 2), each = 4) 5. Construction par la fonction « scan » :  Exemple : f <- scan(n = 4)
  • 19. Les vecteurs  Vecteurs de caractères : Il est possible de créer des vecteurs de caractères de la même façon, en utilisant les fonctions « c » ou « rep ».  Exemple : x <- c(‘A’, ‘BB’, ‘C1’) y <- rep("A",5) Il est aussi possible de créer des vecteurs de caractères grâce à la commande « letters » qui contient les lettres de l’alphabet. La commande « format » permet la mise en forme de données numériques en chaîne de caractères de même longueur. Pour la concaténation, on utilise la commande « paste » :
  • 20. Les objets (Les vecteurs)  Exemple : 1. letters[1:3] 2. paste(c(‘X’, ‘Y’), 1:5, ‘txt’, sep = ‘.’) 3. paste(c(‘X’, ‘Y’), 1:5, sep = ‘.’, collapse =‘+’) 4. substr(‘freerider’,5,9) 5. format(1:10, trim = TRUE) 6. format(c(6.0, 13.1), digits = 2, nsmall = 1)
  • 21. Les vecteurs  Vecteurs logiques : Les vecteurs de booléens sont en général générés grâce à des opérateurs logiques. Ils peuvent aussi être générés par les fonctions seq, rep, c.  Exemple : x <- c(-1,0,2) test <- x > 1 (1+x^2)*(x > 1) Les commandes « all » ou « any » peuvent être également utilisé.
  • 22. Les vecteurs  Sélection d’une partie d’un vecteur : Elle s’opère avec l’opérateur « [ ] » et un vecteur de sélection.  Exemple : v <- 1:100 v[6] v[2:10] v[c(6,6,1:2)] v[10:1]
  • 23. Exercices 1 1) Créez un vecteur V contenant les 200 premiers nombres entiers 2) Faites un tirage de 20 éléments dans ce vecteur que vous nommez Y 3) Créez Z égale à V sans ses 5 premiers éléments 4) Créez W égale à V sans son premier et son dixième élément 5) Faites ressortir A égale aux éléments de Z qui sont supérieurs à 10 et inférieur à 25. 6) Faites ressortir B égale aux éléments de Y qui sont supérieurs à 10 ou inférieur à 25. 7) Faites ressortir C égale aux éléments de Y qui sont supérieurs à 10 et inférieur à 5. 8) Recherchez la coordonnée du plus petit du vecteur de x.
  • 24. Exercices 2 A. À l’aide des fonctions rep, seq et c seulement, générer les séquences suivantes : 1) 0 6 0 6 0 6 2) 1 4 7 10 3) 1 1 1 2 2 3 4) 1 5.5 10 5) 1 1 1 1 2 2 2 2 3 3 3 3 B. Générer les suites de nombres suivantes à l’aide des fonctions c et rep seulement : 1) 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 2) 1 3 5 7 9 11 13 15 17 19 3) -2 -2 -1 -1 0 0 1 1 2 2 4) 10 20 30 40 50 60 70 80 90 100
  • 25. Correction 1 1) V = 0:199 2) Y = sample(V, 20) 3) Z = V[-(1:5)] 4) W = V[-c(1,10)] 5) A = Z[(Z>10) & (Z<25)] 6) B = Z[(Y>10) | (Y<25)] 7) C = Z[(Y>10) & (Y<5)] 8) X = which(Y==min(Y)) ; which.min(Y) ; (1:length(Y))[Y==min(Y)]
  • 26. Les matrices, Création Les matrices sont des objets atomiques, c’est-à-dire de même mode ou type pour toutes les valeurs. La fonction la plus utilisée pour créer une matrice est matrix qui prend en arguments le vecteur d’éléments et le nombre de lignes ou de colonnes de la matrice.  Exemple : M <- matrix(c(1,17,12,3,6,0), ncol=2) A <- matrix(1:10, nrow=2) B <- matrix(1:10, nrow=2, byrow=TRUE) C <- matrix(1:4, nrow=3, ncol=3) d <- seq(1, 10, by=2) D <- as.matrix(d)
  • 27. Les matrices, Sélection L’emplacement d’un élément dans une matrice est en général donné par le numéro de sa ligne et de sa colonne. Ainsi, pour sélectionner l’élément (i,j) de la matrice m, il faut écrire: m[i,j] Exercice 3 Soit A la matrice carrée définie par les 16 premiers nombres impairs 1) Créer A 2) Sélectionner la deuxième colonne de A, que vous nommez B 3) Sélectionner la troisième ligne de A, que vous nommez C 4) Créer la matrice D égale à A sans sa première ligne 5) Sélectionner les colonnes de A pour lesquelles la valeur sur la première ligne de A est strictement supérieur à 2.
  • 28. Calcul sur les matrices Fonctions utiles Fonction Description %*% Produit matriciel t(…) Transposition d’une matrice diag(…) Matrice identité d’ordre … diag(vec) Matrice diagonale avec les valeurs du vecteur vec dans la diagonale crossprod( , ) Produit croisé det() Déterminant d’une matrice solve() Inversion de matrice svd() Décomposition en valeurs singulières eigen() Diagonalisation d’une matrice solve( , ) Résolution de système linéaire chol() Décomposition de cholesky qr() Décomposition QR
  • 29. Exercice 4 A. Soient M et N deux matrices carrées à deux colonnes 1) Créer M et N 2) Créer L la matrice égale au produit croisé de N et M 3) Créer A égale au produit matriciel de M et de la transposée de N 4) Que remarquez-vous de L et A 5) Diagonaliser A 6) Résoudre l’équation Az = V, avec V = (1,2) B. Soit la matrice : X <- matrix(1:120,ncol=12) 1) Affichez toutes les lignes de la matrice commençant par un nombre pair 2) Affichez toutes les lignes de la matrice dont la moyenne est inférieure à 60. 3) Sélectionnez la sous-matrice formée des lignes de la matrice dont la moyenne est inférieure à 60 et des colonnes dont la somme est inférieure à 500 4) Sélectionnez la même sous-matrice, sauf la troisième ligne.
  • 30. Les matrices, Opérations sur les lignes et colonnes Il est possible de concaténer plusieurs vecteurs en ligne ou en colonne avec les fonctions rbind et cbind pour en faire une matrice.  Exemple : M <- cbind(c(1,17,12,3,6,0), c(1,0,0,5,-2,1)) A <- cbind(c(1,1,1), c(0,1,1), c(0,0,1)) B <- rbind(c(1,1,1), c(0,1,1), c(0,0,1)) La fonction apply permet d’appliquer une fonction f aux lignes ou aux colonnes de la matrice.  Exemple : apply(A, MARGIN=2, sum)
  • 31. Les facteurs Les facteurs sont des vecteurs permettant la manipulation de données qualitatives. La longueur est donnée par la fonction length, le mode par mode et les modalités du facteur par levels. Ils forment une classe d’objets et bénéficient de traitements particuliers pour certaines fonctions, telle la fonction plot pour les graphiques. Trois fonctions permettent de créer les facteurs : 1. La fonction factor : Sexe<-factor(c(‘M’,’M’,’F’,’M’,’F’,’M’,’M’,’M’)) 2. La fonction ordered : Niveau <- ordered(c(‘débutant’, ‘moyen’, ‘champion’), levels=c(‘débutant’, ‘moyen’, ‘champion’))
  • 32. Les facteurs 3. La fonction as.factor : salto <- c(1:5, 5:1) ; salto.f <- as.factor(salto) Exemple: 1. X <- factor(c("bleu", "vert", "bleu", "rouge","bleu" , "vert" , "vert")) 2. levels(X) 3. class(X)
  • 33. Les listes La liste est un objet hétérogène. C’est un ensemble ordonnée d’objets qui n’ont pas toujours le même mode ou la même longueur. Les objets sont appelés « composantes de la liste ». Les listes ont les deux attributs des vecteurs (length et mode) et l’attribut supplémentaire names. Les listes sont des objets importants car toutes les fonctions qui retournent plusieurs objets le font sous la forme d’une liste.
  • 34. Les listes, Création Les listes se créent avec la fonction list. Mais, il faudrait au par avant définir les arguments qui interviendront dans la liste.  Exemple : V <- seq(2,10, by=3) A <- matrix(1:8, ncol=2) B <- factor(c(‘M’,’M’,’F’,’M’,’F’,’M’,’M’)) O <- ordered(c(‘débutant‘,'moyen’,‘champion’)) maliste <- list(V,A,B,O) Pour nommer la liste, on utilise la fonction names.
  • 35. Les listes, Extraction Pour extraire une composante de la liste, on peut toujours le faire en indiquant la position de l’élément que l’on souhaite extraire. Les [[…]] permettent de retourner l’élément de la liste :  Exemple : maliste[[2]] maliste[[1]] On peut aussi utiliser le nom de l’élément s’il existe, ce que l’on peut écrire de deux façons : maliste[[‘…’]] maliste$...
  • 36. Les listes, Extraction (Suite) Il est possible d’extraire plusieurs éléments d’une même liste, ce qui crée une sous-liste. Noter qu’ici, on utilise […] et non [[…]]. Exemple : maliste[c(1,3)] La liste dimnames. C’est un attribut optionnel d’une matrice qui contient dans une liste à deux composantes les noms des lignes et des colonnes.  Exemple : x <- matrix(1:12, nrow=3, ncol=4) nomlign <- c(‘ligne1’,’ligne2’,’ligne3’) nomcol <- c(‘colonne1’,’colonne2’,’colonne3’, ‘colonne4’) dimnames(x) <- list(nomlign, nomcol)
  • 37. Les data-frames Les data-frames sont des listes particulières dont les composantes sont de même longueur, mais les modes peuvent être différents. Les tableaux de données usuellement utilisés en statistique sont souvent considérés comme des data-frames. Les principales manières de créer un data-frame consistent à utiliser les fonctions suivantes : 1. data.frame qui permet de concaténer des vecteurs de même taille et éventuellement de modes différents 2. read.table qui permet de lire un tableau de données 3. as.data.frame qui permet de transformer une matrice, une liste, … en data-frame
  • 38. Exercice 5 1. IMC <- data. frame (Sexe=c ("H", "F", "H", "F", "H", "F") , + Taille=c(1.83,1.76,1.82,1.60,1.90,1.66), + Poids=c(67,58,66,48,75,55), + row.names=c ("Remy", "Franck", "Pierre", "Domi", "Ben", "Cecile")) 2. Créer le tableau suivant :
  • 39. Les fonctions Une fonction est un objet R. Un grand nombre de fonctions sont prédéfinies dans R, cependant, il est possible de créer ses propres fonctions. Une fonction admet des arguments en entrée et retourne un résultat en sortie. Les arguments d’une fonction sont soient obligatoires soient optionnels. Dans ce dernier cas, ils possèdent une valeur par défaut.  Exemple : la fonction rnorm() Cette fonction admet trois arguments; n le nombre de valeurs à générer, mean la moyenne et sd l’écart type. Ces deux derniers sont fixés à 0 et 1 par défaut.
  • 40. Les fonctions La plupart des fonctions retournent plusieurs résultats et l’ensemble de ces résultats est contenu dans une liste. Pour visualiser l’ensemble des sorties, il est nécessaire de connaître l’ensemble des éléments de la liste en utilisant la fonction names.
  • 41. Exercices I. Création et inversion d’une matrice 1. Créer la matrice suivante: 𝐴 = 1 5 5 0 0 5 6 1 3 0 3 1 4 4 4 2 2. Nommer les lignes et les colonnes de cette matrice. La ième ligne sera nommée Li et la jème colonne Cj. 3. Calculer le déterminant puis inverser la matrice en utilisant les fonctions appropriées.
  • 42. Exercices I. Création et inversion d’une matrice II. Sélection dans un data-frames 1. A partir du jeu de données iris disponible sous R, créer un sous-jeu de données comportant uniquement les données de la modalité versicolor de la variable species. Appeler ce nouveau jeu de données iris2. 2. Trier par ordre décroissant les données de iris2 en fonction de la variable Sepal.Length (utiliser la fonction order).
  • 45. Importer des données Il existe trois fonctions principales pour importer un fichier texte dans R. Ces fonctions sont récapitulées dans le tableau suivant: 1. L’instruction read.table() Cette instruction permet de lire des données présente dans un fichier (à sélectionner à partir d’une fenêtre de dialogue) et les rapatrier dans R sous la forme d’un data.frame. Elle contient plusieurs paramètres qui sont décrits dans le tableau suivant :
  • 46. Importer des données read.table(file=file.choose(), header=T, sep="t", dec=".", row.names=1) Lors de l’utilisation de la fonction read.table, il est nécessaire de spécifier la valeur du paramètre file qui doit contenir dans une chaine de caractère, le nom du fichier ainsi que son chemin d’accès complet.
  • 47. Exercice 1 Nous sommes en présence de la variable qualitative suivante: Xqual=factor(c(rep(‘A’,60),rep(‘B’,20),rep(‘C’,17),rep(‘D’,3))) 1. Calculer les fréquences de chaque modalité 2. Afficher à l’écran l’intitulé des modalités dont l’effectif est inférieur à 5% de l’effectif total 3. Calculer les fréquences de chaque modalité sans la modalité de la question précédente. Le résultat sera mis dans un vecteur proba 4. Sélectionner les individus prenant la modalité de la question 2. Leur donner une valeur parmi les modalités restantes, selon un tirage dont les probabilités sont calculées en question 3.
  • 48. Exercice 2 1. Créez un dossier nommé DossierData_N°Groupe sur votre bureau à partir de la commande setwd( ). 2. Téléchargez le fichier se trouvant à l’adresse suivante : http://www.biostaticticien.eu/springR/Intima_Media.txt et sauvez le dans votre dossier. 3. Utilisez la fonction readlines( ) pour visualiser le début de ce fichier. 4. Importez le fichier 5. Calculez l’âge moyen et la variance des tailles
  • 49. Importer des données 2. L’instruction read.ftable( ) Il arrive parfois que l’on ne dispose pas de toutes les données individuelles, mais uniquement d’un résumé présenté sous la forme d’un tableau de contingence. Dans ce cas, il faut utiliser la fonction d’importation read.ftable( ). Supposons que le fichier Intima se présente comme suit : On utilisera l’instruction suivante: Intima.table<- read.ftable(« Intima_ftable.txt,row.var.names=c("SEXEE","tabac"),col.vars=list("alcool"=c ("ne boit pas","boit obligatoirement", "boit régulièrement")))
  • 50. Importer des données 3. L’instruction scan( ) La fonction scan( ) possède de très nombreux paramètres et elle est à privilégier lorsque les données ne sont pas organisées sous la forme d’un tableau rectangulaire. Prière consulter la documentation à son sujet. Supposons que le fichier Intima se présente comme suit : Les commandes conseillées pour lire ce fichier sont :
  • 52. Exporter des données Pour exporter des données, on utilise la commande write.table( ). On peut exporter des fichiers sous format txt ou csv et également dans Excel.  Exemple : write.table(tablo,"nomfichier.txt",sep=";") write.table(tablo,"nomfichier.csv",sep="t") Tapez les commandes suivantes: Ouvrez Excel ou OpenOffice Calc et faites ctrl+v. Que remarquez-vous?
  • 56. Statistiques descriptives Nous allons fonder tous nos exemples sur le fichier de données nutriage.xls que vous pouvez télécharger à l’emplacement suivant : http://www.biostatisticien.eu/springR /nutriage.xls 1. Importez le fichier dans votre dossier.(utilisez le package gdata pour pouvoir utiliser read.xls) 2. Observer les 5 premières lignes du fichier. 3. Recodez les modalités de la variable sexe en utilisant la fonction levels ( ). 4. Effectuez un tri à plat en effectif sur la variable matgras. 5. Effectuez un tri à plat en fréquence sur la variable matgras.
  • 57. Graphiques 1. Diagramme en croix Le diagramme en croix affiche pour chaque observation une petite barre horizontale dans la colonne de la modalité correspondante. Il n’est pas intégré au logiciel R, mais nous pouvons le programmer au moyen de la fonction plot( ) et de son paramètre pch. La fonction obtenue sera appelée diagcroix( ).  A développer dans la partie Programmation. 2. Diagramme en points Le diagramme en points s’obtient par l’utilisation de la fonction dotchart( ) couplé à la fonction table( ). Prenez l’exemple suivant:
  • 58. Graphiques 3. Diagramme en tuyaux d’orgue Il s’obtient à partir de la fonction barplot( ). Vous pouvez également prendre l’exemple suivant: 4. Diagramme de Pareto Son obtention se fait également à partir de la fonction barplot( ). Prenez l’exemple suivant :
  • 59. Graphiques 5. Diagramme empilé Il s’obtient également à partir de la fonction barplot( ) en fournissant un objet de type matrix comme premier paramètre effectif. Exemple:
  • 60. Graphiques 6. Diagramme circulaire Il s’obtient à partir de la fonction pie( ). Exemple: Require("RColorBrewer") col<- brewer.pal(8,« Paste12") pie(table(matgras),col=col) 7. Diagramme tuyaux d’orgue avec fréquence cumulée Il s’obtient en couplant les fonctions barplot( ) et points( ).
  • 61. Graphiques 8. Diagramme en bâton Il s’obtient à partir de la fonction plot( ) appliquée à un tableau de contingence. 9. Graphe de la fonction de répartition empirique Il s’obtient en couplant les fonctions plot( ) et ecdf( ).
  • 62. Graphiques 10. Boîte à moustaches Elle s’obtient à partir de la fonction boxplot( ). 11. Histogramme Il s’obtient à partir de la fonction hist( ).
  • 64. Structures de contrôle Commandes groupées Un groupe de commande est comme une parenthèse en mathématique: les commandes groupées sont effectuées ensemble. Sous R, le groupe de commande est délimité par des accolades: { +expr1 +expr2 +… +} Deux commandes successives sont séparées par un retour à la ligne. Cependant, il est possible de séparer deux commandes en les conservant sur une même ligne.
  • 65. Structures de contrôle Les boucles for ou while Les boucles classiques sont disponibles sous R.  Boucle for De manière générale, la boucle for s’écrit : for (i in vecteur) { +expr1 + … +}  Exemple : for(i in 1:99) print(i) for(i in seq(1,99,by=2)) print(i)
  • 66. Structures de contrôle  Boucle while De manière générale, la boucle while s’écrit : while (condition) { +expr1 + … +}  Exemple : i=1 while(i<3) { print(i) i=i+1}
  • 67. Structures de contrôle Conditions if Il s’agit d’exécuter un ordre sous condition : l’ordre est exécuté si et seulement si la condition est vraie. Il s’écrit plus généralement : if (condition) { +expr1 + … +}  Exemple : i=1 repeat{ print(i) i=i+1 if(i>3) break}
  • 68. Structures de contrôle Conditions if, else Il s’agit d’exécuter un ordre sous condition : l’ordre est exécuté si et seulement si la condition est vraie. Il s’écrit plus généralement : if (condition) { +expr1 + … +} else{ + exprn +… +}
  • 69. Exemple Prenons la définition de la variance d'un échantillon de taille n d'une variable continue X. Dans un langage de programmation classique, nous écririons quelque chose du type :
  • 70. Exemple Dans R nous pouvons immédiatement travailler sur les vecteurs et donc utiliser la syntaxe suivante:
  • 71. Exercices 1. Écrire le programme permettant de retourner la valeur absolue d’un nombre. (Fonction valeur absolue) 2. Ecrire le programme permettant de retourner l’inverse d’une valeur. 3. Ecrire le programme permettant de faire la composée des deux fonctions précédentes.