Initiation r

71
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

Transcript of Initiation r

Page 1: Initiation r

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

Page 2: Initiation r

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

Page 3: Initiation r

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

Page 4: Initiation r

Introduction

Page 5: Initiation r

1. Introduction

R Logiciel Statistique

Avantages de R

Inconvénients de R

Philosophie de R

Page 6: Initiation 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.

Page 7: Initiation r

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.

Page 8: Initiation r

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.

Page 9: Initiation r

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.

Page 10: Initiation r

Fonctionnement

Page 11: Initiation r

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.

Page 12: Initiation r

Session de travailPour 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

Page 13: Initiation 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”)

Page 14: Initiation r

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)

Page 15: Initiation r

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

Page 16: Initiation r

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

Page 17: Initiation r

Les vecteurs ILe 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

Page 18: Initiation r

Les vecteurs II3. 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)

Page 19: Initiation r

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 » :

Page 20: Initiation r

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)

Page 21: Initiation r

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

Page 22: Initiation r

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]

Page 23: Initiation r

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

Page 24: Initiation r

Exercices 2A. À 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

Page 25: Initiation r

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

Page 26: Initiation r

Les matrices, CréationLes 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)

Page 27: Initiation r

Les matrices, SélectionL’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.

Page 28: Initiation r

Calcul sur les matricesFonctions 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

Page 29: Initiation r

Exercice 4A. 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.

Page 30: Initiation r

Les matrices, Opérations sur les lignes

et colonnesIl 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)

Page 31: Initiation r

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

Page 32: Initiation r

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)

Page 33: Initiation r

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.

Page 34: Initiation r

Les listes, CréationLes 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.

Page 35: Initiation r

Les listes, ExtractionPour 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$...

Page 36: Initiation r

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)

Page 37: Initiation r

Les data-framesLes 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

Page 38: Initiation r

Exercice 51. 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 :

Page 39: Initiation r

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.

Page 40: Initiation r

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.

Page 41: Initiation r

Exercices

I. Création et inversion d’une matrice

1. Créer la matrice suivante:

𝐴 =

1 5 5 00 5 6 13 0 3 14 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.

Page 42: Initiation r

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

Page 43: Initiation r

Deuxième partie

Page 44: Initiation r

Manipulation des données

Page 45: Initiation r

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 :

Page 46: Initiation r

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.

Page 47: Initiation r

Exercice 1Nous 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.

Page 48: Initiation r

Exercice 21. 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

Page 49: Initiation r

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

Page 50: Initiation r

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 :

Page 51: Initiation r

Importer des données

Page 52: Initiation r

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?

Page 53: Initiation r

Fonctions mathématiques de base

Page 54: Initiation r

Fonctions mathématiques de base

Page 55: Initiation r

Fonctions mathématiques de base

Page 56: Initiation r

Statistiques descriptivesNous 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.

Page 57: Initiation r

Graphiques1. 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:

Page 58: Initiation r

Graphiques3. 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 :

Page 59: Initiation r

Graphiques5. Diagramme empilé

Il s’obtient également à partir de la fonction barplot( ) en fournissant

un objet de type matrix comme premier paramètre effectif.

Exemple:

Page 60: Initiation r

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

Page 61: Initiation r

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

Page 62: Initiation r

Graphiques10. Boîte à moustaches

Elle s’obtient à partir de la fonction boxplot( ).

11. Histogramme

Il s’obtient à partir de la fonction hist( ).

Page 63: Initiation r

Programmation sous R

Page 64: Initiation r

Structures de contrôleCommandes 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.

Page 65: Initiation r

Structures de contrôleLes 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)

Page 66: Initiation r

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}

Page 67: Initiation r

Structures de contrôleConditions 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}

Page 68: Initiation r

Structures de contrôleConditions 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

+…

+}

Page 69: Initiation r

ExemplePrenons 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 :

Page 70: Initiation r

ExempleDans R nous pouvons immédiatement travailler sur les

vecteurs et donc utiliser la syntaxe suivante:

Page 71: Initiation r

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.