Vous êtes sur la page 1sur 22

Support de Cours sur le logiciel R

Master Statistiques Appliques

Table des matires


1 Introduction gnrale

2 Introduction sur R

3 La session R

4 Les
4.1
4.2
4.3
4.4
4.5
4.6

objets, cration et types


Cration . . . . . . . . . . . . . .
Affichage de la valeur dun objet
Les diffrents types dun objet . .
La valeur manquante . . . . . . .
Suppression dobjets . . . . . . .
Les attributs . . . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

2
2
2
2
3
3
3

5 Les oprateurs arithmtiques

6 Les oprateurs logiques

7 Les
7.1
7.2
7.3
7.4
7.5
7.6

vecteurs
Dfinition et construction . . . . . . . . . . . . . .
Arithmtique . . . . . . . . . . . . . . . . . . . . .
Quelques oprations . . . . . . . . . . . . . . . . .
Les vecteurs de caractres . . . . . . . . . . . . . .
Les vecteurs logiques . . . . . . . . . . . . . . . . .
Slection dune partie dun vecteur . . . . . . . . .
7.6.1 Slection par des vecteurs dentiers positifs
7.6.2 Slection par des vecteurs dentiers ngatifs
7.6.3 Slection par des vecteurs de logique . . . .
7.6.4 Cas classiques . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.

4
4
5
5
5
5
6
6
6
6
6

8 Les
8.1
8.2
8.3

facteurs
Cration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Quelques fonctions sur les facteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Quelques remarques sur la conversion en numrique des facteurs . . . . . . . . . . . . .

7
7
7
8

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

9 Les dates
10 Les Matrices
10.1 Cration . . . . . . . . .
10.2 Slection . . . . . . . . .
10.3 Oprations particulires
10.3.1 Algbre linaire .
10.3.2 Fonctions utiles .
10.4 Les tableaux array . .

.
.
.
.
.
.

8
8
9
9
9
9
9

11 Les listes
11.1 Cration, extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.2 Listes : utilit et quelques fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.3 Listes particulires : dimnames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10
10
10
10

12 Les Data Frame


12.1 Cration, extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11
11

13 Attach et detach (data frame et listes)

11

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

14 Import - Export
14.1 Import de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.2 Import de script et fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.3 Export de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11
11
11
12

15 La programmation

12

16 Les fonctions
16.1 Dfinition, appel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.2 Les fonctions, arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12
12
13

17 Les graphiques
17.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.2 Personnalisation des graphiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.3 Exemples de fonctions et doptions des graphiques . . . . . . . . . . . . . . . . . . . .

13
13
13
14

18 Formules sous R
18.1 Formules sous R . . . . . . . . . . . . . . . .
18.2 Formules sous R, transformation des variables
18.3 Formules sous R, transformation et protection
18.4 Formules sous R, Interaction, effets nids . . .
18.5 Formules sous R, Facteurs . . . . . . . . . . .
18.6 Formules sous R, Contrastes et facteurs . . .
18.7 Formules sous R, Contrastes et facteurs . . .
18.8 Codage des facteurs . . . . . . . . . . . . . .
18.9 Codage des facteurs, suite . . . . . . . . . . .

14
14
15
15
15
15
16
16
16
17

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

19 Modlisations, quelques exemples

17

20 Rgles de recherches des objets

17

21 Librairies de programmes (packages)

18

22 Rien ne marche ?

18

ii

Formation R

Master Statistiques Appliques

Support de Cours sur le logiciel R


Master de Statistique Applique
avertissement : cette prsentation nest pas un cours mais simplement un support de cours. Les
explications sont succinctes voire inexistantes et les exemples sont encore plus rares... Les erreurs de
typographie seront srement rencontres quelque-part, en dernier lieu laide en ligne a toujours raison...

Introduction gnrale

R est un logiciel de la famille GNU La prsentation de la page http://www.gnu.org en franais est


cite ci-dessous.
Le projet GNU a t lanc en 1984 afin de dvelopper un systme dexploitation complet,
semblable Unix et qui soit un logiciel libre : le systme GNU. ( GNU est lacronyme
rcursif the GNUs Not Unix ; on le prononce gnou avec un G audible). Des variantes
du systme dexploitation GNU, bases sur le noyau Linux , sont utilises largement
prsent ; bien que ces systmes soient communment appels par le terme Linux , ils le
seraient plus exactement par GNU/Linux .
Les logiciels GNU sont nombreux et divers comme les compilateurs C, C++ et fortran (gcc), les librairies, les diteurs de textes (emacs), les environnements (GNOME), les logiciels de calcul scientifique
(octave), ldition (TEX, LATEX) les jeux dchec (chess) etc..
R (ou GNU-R) est un logiciel de statistiques interactif et interprt. Il fourni un langage de commande
trs souple et qui est ouvert : il possde des interface vers dautres programmes comme C et Fortran.
En outre il est le proche cousin de Splus qui est un logiciel payant. Il permet entre autre
la manipulation de donnes, les oprations mathmatiques classiques (cos, sin etc...), les nombres
complexes, les donnes discrtes, lalgbre linaire
les techniques statistiques comme, la rgression, les modles GLM, la rgression non-linaire, le
bootstrap, les arbres hirarchiques, les arbres de rgression, les techniques multivaries, les nombres
alatoires et les distributions, les sries chronologiques etc...
les reprsentation graphiques histogrammes, diagrammes en bton, boxplot, camemberts, lissage,
arbres, dessins 2D et 3D, courbes de niveaux, dessins conditionnels etc...
La page de prsentation de R est http://www.R-project.org ; elle permet de tlcharger le logiciel
gratuitement, de suivre ses volutions davoir des rponses aux questions frquemment poses (FAQ
en anglais)...

Introduction sur R

R utilise des commandes


Les commandes font intervenir des oprateurs et des fonctions
les commandes oprent sur des objets
Pour appeler des fonction intgres il suffit de taper son nom suivi de ses arguments entre parenthses :
> sqrt(x) (racine carre)
> mean(x) (moyenne)
> help(mean) (aide en ligne sur la fonction, ici la moyenne mean)
> help.start() (lancement de laide graphique au format html - plus convivial)
> q() (quitte R)

La session R

Lorsque lon ouvre le logiciel R, on dit que R ouvre une session. Il cherche une trace ventuelle dune
session antrieure garde sous la forme de fichier image au format interne de R. Si il en trouve une il
la charge et vous retrouvez les objets et fonctions de votre prcdente session. Sinon aucun objet nest
prsent. Pour consulter la liste des objets disponibles tapez un des deux ordres suivants

Formation R

Master Statistiques Appliques

> objects()
> ls()
Il est quelquefois utile de nafficher que les objets contenant une certaine suite de caractre, par exemple
tout ceux qui commance par a
> ls(pattern="^a")
Tous les objets crs lors de la session sont stocks dans un fichier image et votre sortie R vous
demande si il faut ou non le garder. On peut stocker une image de manire intentionnelle en utilisant
(sous windows) le menu file/save. Cela permet de sparer les fichiers stockant des objets R appartenant
des projets diffrents. Pour les rcuprer il suffit dutiliser le menu file/load.
Il est fortement conseill de sparer vos objets en autant dimage que vous avez de projets diffrents,
par exemple le projet Rhne-Alpes, formation R, etc...

4
4.1

Les objets, cration et types


Cration

Simplement par affectation avec les oprateurs <-, -> en lui donnant un nom :
> b <- sqrt(2) (cre lobjet b)
> x<-b (x reoit la valeur b)
> x=b (x reoit la valeur b)
> b -> x (x reoit la valeur b)
Si un objet nexiste pas laffectation le cre. Sinon laffectation crase la valeur prcdente.

4.2

Affichage de la valeur dun objet

> a (affiche le contenu de a)


> q (affiche le contenu de la fonction q qui permet de quitter)
> print(a) (affiche le contenu de a)

4.3

Les diffrents types dun objet

Objets simples (ou atomiques) : ce sont des objets qui ne comportent que des lments de mme
mode
Objets composs (ou htrognes) : ce sont des objets qui comportent des lments qui peuvent tre
de modes diffrents
Les principaux modes sont
null (objet vide) : NULL
logical (booleen) : TRUE, FALSE ou T, F
numeric (valeur numrique) : 1, 2.3222, pi, 1e-10,
character (chane de caractre) : bonjour, "K"
complex (nombre complexe) : 2+0i, 2i
Les conversions dun mode un autre de manire explicite
as.logical
as.numeric
as.complex
as.character
Les conversions dun mode un autre de manire implicite se font dans cet ordre
logiques
numriques
complexes
caractres

Formation R

Master Statistiques Appliques

Il est possible de tester un objet pour savoir si il est dun mode particulier, le rsultat est vrai ou faux,
cest dire un boolen (TRUE ou FALSE) :
is.null(x)
is.logival(x)
is.numeric(x)
is.complex(x)
is.character(x)

4.4

La valeur manquante

Elle est note NA. Ce nest pas un vritable mode car elle peut tre dans des objets atomiques, mais
elle distingue la valeur manquante et possde ses propres rgles de calcul. Par exemple
> NA+1 renvoie NA...
Pour savoir si il existe une valeur manquante au moins dans lobjet x il faut poser la question
> is.na(x), cela renvoie un objet simple de boolen de mme longueur que x.
Dans un objet simple la question est pose lment par lment ; ainsi dans le cas dun vecteur cela
renvoie un vecteur de mme longueur que x avec des T si llment correspondant de x est NA et des
F sinon.
Il existe aussi les valeurs spciales Inf pour linfini et NaN pour not a number, valeurs rsultants de
problmes calculatoire (par exemple exp(1e10) ou log(-2) dans lordre).

4.5

Suppression dobjets

Par dfaut R garde tous les objets cres dans la session, sauf si lon ne sauvegarde pas la session la
sortie de R. Il est donc recommand de faire souvent le mnage. Pour supprimer un objet nomm a
> rm(a)
Pour supprimer des objets
> rm(a,b)
Enfin pour supprimer une liste dobjets qui possde une partie de nom en commun, ici la lettre a, on
utilise
> rm(list=ls(pattern=".*a.*"))

4.6

Les attributs

Les attributs intrinsques (toujours prsents)


Mode (mode)
Longueur (length)
Les attributs spcifiques qui varient selon le type dobjet
dim, dimnames (voir 11.3)
classe
Comment les voir ?
> attributes(objet)
Comment les modifier ?
> attr(objet,"dim")<-c(10,10)
Attribut classe (class)
Permet une fonction de connatre la classe de lobjet : lorsquune fonction (gnrique) possde
plusieurs mthodes diffrentes selon la classe. Par exemple lordre plot(x) ne donne pas le mme
rsultat (ici il sagit dun dessin) selon que x est un facteur (classe factor) ou un vecteur de numrique
contenant les mmes valeurs (voir 7 p.4 et 8 p.7).
unclass(objet) enlve lattribut de classe

Formation R

Master Statistiques Appliques

Les oprateurs arithmtiques

parenthses
()
exponentiation
^
moins unaire
squence
:
division entire, congruence %/% %%
multiplication, division
* /
addition
+ affectation
<- ->
Le tableau est ordonn du plus prioritaire (en haut) vers le moins prioritaire (en bas).

Les oprateurs logiques

suprieur (strictement)
suprieur
infrieur (strictement)
Comparaison : infrieur
diffrent
gal
dans un ensemble
ngation (not)
!
et logique (and) &, &&
Relation :
ou logique (or)
|, ||
ou exclusif (xor) xor(,)

7
7.1

>
>=
<
<=
!=
==
%in% 1

Les vecteurs
Dfinition et construction

Cest un objet atomique compos dun ensemble ordonn de valeurs (les composantes ou coordonnes
ou lments). Le nombre dlments constitue lattribut longueur.
Construction : diffrentes mthodes sont possibles dont :
Construction par la fonction collecteur c()
> x<-c(10.4,5.6,12,78,42.3) vecteur de numriques 5 lments
> x<-c(x,10,23,c(12,15,46),x) vecteur 20 lments
Une constante est un vecteur de longueur 1
> x<-c(A,CVER) vecteur de caractres 2 lments
> x<-c(TRUE, FALSE) vecteur de logiques 2 lments
Construction par loprateur squence :
> 1:30 gnre le vecteur c(1,2,...,30)
Construction par la fonction seq()
> seq(1,30,by=0.5) c(1,1.5,2,2.5,...,30)
> seq(1,30,length=300) 300 points compris entre 1 et 30 et quidistants.
Construction par la fonction rep()
> rep(1,4) gnre le vecteur c(1,1,1,1)
Construction par la fonction scan(), R demande alors de rentrer le premier lment, puis le second ...
par conversion explicite : as.vector()
1. il ne sagit pas dun oprateur logique habituel : x%in%y prend tous les elements 1 par 1 de x et regarde si ils sont
gaux une des coordonnes de y (au moins), si oui la coordonne du resultat est TRUE sinon FALSE. Le resultat renvoy
a donc autant de coordonnes que le vecteur x

Formation R

Master Statistiques Appliques

Remarque on peut poser la question R si lobjet est un vecteur


> is.vector(x) et la rponse est TRUE ou FALSE.

7.2

Arithmtique

Les vecteurs peuvent tre utiliss dans des expressions arithmtiques. Les oprations sont effectues
lment par lment et si les vecteurs sont de longueur diffrentes, le rsultat possde la longueur du
plus long :
x
y
y rallong
x+y

=
=
=
=

-1
2
2
1

0
1
1
1

1
2
2
3

4
(2
6

2)

En particulier une constante est rpte !


> x*12 multiplie par 12 tous les lments de x. > x+2 ajoute 2 tous les lments de x.

7.3

Quelques oprations

valeur absolue abs()


racine carre sqrt()
trigonomtrie cos(), sin(), tan(), asin(), acos(), atan()
exponentielle exp, log(), log10()
statistiques max(), min(), range(), mean(), median(), var(), IQR(), quantile(), sd(), cov(),
cor()
somme produit sum(), prod(), diff(), cumsum(), cumprod(), cummin(), cummax()
tri sort() order() rank()
renverse rev()
arrondis round(x,digits=2), floor(), signif()
mathmatiques beta(), gamma(), choose(), factorial(), digamma(), psigamma()

7.4

Les vecteurs de caractres

Cration par les fonctions seq(), rep(), c()


Cration par la fonction format(1:12) qui permet la mise en forme des donnes numriques (chane
de caractre de mme longueur), voir aussi toString()
Manipulations
concatnation : paste()
> paste(c(X,Y),1:10,txt,sep=.,collapse=NULL) donne
c(X.1.txt, Y.2.txt, X.3.txt,..., X.9.txt, Y.10.txt)
> paste(c(X,Y),1:10,sep=.,collapse="hop") donne
"X.1hopY.2hopX.3hopY.4hopX.5hopY.6hopX.7hopY.8hopX.9hopY.10"
extraction : substr()
> substr("abcdef",2,4) donne "bcd"

7.5

Les vecteurs logiques

Ce sont des boolens et sont en gnral gnrs par des conditions grce aux oprateurs logiques. Ils
peuvent tre aussi gnrs par les fonctions seq(),rep(), c(). Ils permettent des slections complexes
(voir 7.6.3 p.6) ou des oprations de conditions (voir 15 p.12).
> 1>0 Vecteur logique de longueur 1 : TRUE
> x>13 vecteur logique de mme longueur que x. Ses lments ont la valeur T quand llment correspondant satisfait la condition (ici suprieur 13) et la valeur F sil ne la satisfait pas (donc ici infrieur
ou gal 13).

Formation R

Master Statistiques Appliques

Utilisation en arithmtique ordinaire : les F sont transforms en 0 et les T sont transforms en 1 :


> x <- -1:1 (vecteur (-1,0,1))
> test <- x>0 (vecteur (F,F,T))
> (1+x^2)*(x>0) (vecteur (0,0,2))
On peut aussi utiliser les fonctions
> all(test) renvoie un boolen : TRUE si tous les lments de test sont vrais ou FALSE sinon (ici
cest faux)
> any(test) renvoie un boolen : TRUE si au moins 1 des lments de test est vrai ou renvoie faux
sinon (ici cest vrai)

7.6

Slection dune partie dun vecteur

Elle sopre avec loprateur de slection [] et un vecteur comme ceci :


> x[vecteur]
Le vecteur peut tre soit un vecteur dentiers positifs, soit un vecteur dentiers ngatifs, soit vecteur
de logiques.
7.6.1

Slection par des vecteurs dentiers positifs

Les entiers sont les indices des lments slectionner et doivent tre compris entre 1 et length(x)
La longueur du vecteur dindice peut tre quelconque et sa longueur donne la longueur du rsultat :
> v<-1:100
> v[6] donne le sixime lment de v : 6
> v[6:8] donne les 6me , 7me et 8me lments de v
> v[c(6,6,5,1:2)] donne les 6me , 6me , 5me , 1er et 2me lments de v
> v[10:1] donne les 10me , 9me ... 1er lments de v.
7.6.2

Slection par des vecteurs dentiers ngatifs

Le vecteur indique les indices des lments exclure du rsultat :


> v[-(1:5)] donne v sans ses 5 premiers lments.
Remarque : on ne peut pas mlanger des indices positifs et ngatifs...
7.6.3

Slection par des vecteurs de logique

Elle constitue un des points commun avec des langages de script comme octave et permet lextraction
dlment particulier que lon sait caractris par un priphrase (comme llment qui possde une
valeur infrieure 40 mais suprieure 33.5) qui peut se traduire en condition logique :
> v<-1:100
> v[(v>40)&(v<33.5)] : les lments de v qui possdent une valeur infrieure 40 et suprieure
33.5
> v[v%%5==0] donne les lments de v multiples de 5
Afin de comprendre ce qui se passe dcomposons la commande en 2 parties : > v%%5==0 :
F F F F T F F F F T
F
...
> v
1 2 3 4 5 6 7 8 9 10 11 ...
Le rsultat ne garde que les valeurs en regard des valeurs vraies (T) : 5, 10 etc..
7.6.4

Cas classiques

Nous pouvons substituer un sous ensemble slectionn, des valeurs nouvelles :


> x[is.na(x)]<-0 les lments NA reoivent la valeur 0
> y[y<0]<- -y[y<0] les lments ngatifs de y reoivent moins (unaire) des lments ngatifs de

Formation R

Master Statistiques Appliques

y, ce qui est quivalent lordre suivant :


> y<-abs(y)
Recherche de valeur(s) dans un ensemble %in%
> ensemble <- c(1990, 1994, 1995, 1997)
> tous <- seq(min(x), max(x))
> bool.presents <- tous %in% x
> val.absents <- tous[!all.x %in% x]
Recherche de la coordonne du plus petit lment
> (1:length)[x==min(x)] # choix 1
> which(x==min(x)) # choix 2
> which.min(x) # choix 3
Recherche des coordonnes des valeurs manquantes NA
> which[is.na(x)]

Les facteurs

Ce sont des vecteurs ayant 2 attributs supplmentaires permettant la manipulation de donnes qualitatives. Les facteurs forment une classe dobjet et bnficieront donc de traitement particulier pour
certaines fonctions par exemple plot().

8.1

Cration

2 types diffrents
les facteurs non ordonns (mle, femelle) appels factor
les facteurs ordonns (riche, ais, pauvre) appels ordered
Leurs attributs
length, mode "character"
levels
class : "factor" (ou "ordered" "factor", la classe "ordered" est un raffinement de la classe "factor")
Cration
> factor(donnees <,levels,label>) < ... > sont des arguments optionnels
> ordered(donnees)
> as.factor(donnees) conversion explicite
> as.ordered(donnees) conversion explicite
> cut coupe en classe de longueur (presque) gale une variable continue (voir aussi co.intervals
pour des classes deffectifs presque gaux)
Remarque on peut poser la question R si lobjet est un facteur
> is.factor(x) et la rponse est TRUE ou FALSE.
> is.ordered(x) et la rponse est TRUE ou FALSE.

8.2

Quelques fonctions sur les facteurs

levels donne les niveaux du facteurs


unclass rend rel un facteur (recode le premier niveau par 1, le second par 2...), garde les attributs
(4.6, p.3 ; 8.1 p.7)
table(facteur1,facteur2...) donne la table de contingence associe
tapply(vecteur,facteur,FUN) applique la fonction FUN au vecteur mais sparment, niveau par
niveau du facteur
aggregate(vecteur,list(facteur1,facteur2),FUN=mean) applique la fonction moyenne au vecteur mais sparment, niveau par niveau du facteur1 puis lintrieur niveau par niveau du facteur2
(quivalent lordre by de SAS), voir aussi la fonction by().

Formation R

Master Statistiques Appliques

split(vecteur,facteur) spare le vecteur de donnes grce au facteur. Tous les niveau 1 du facteur
sont ensembles puis tous les niveaux 2 etc... La sortie est une liste (voir 11).

8.3

Quelques remarques sur la conversion en numrique des facteurs

> x<-factor(c(10,11,13))
> as.numeric(unclass(x))
[1] 1 2 3
> as.numeric(x)
[1] 1 2 3
> as.numeric(as.vector(x))
[1] 10 11 13
> as.vector(x)
[1] "10" "11" "13"

Les dates

Il sagit dobjet homogne dune classe particulire, la classe date. Pour passer dun vecteur de caractre
un vecteur de dates de type 25-01-2005, utiliser
> as.Date(x, format = "%d-%m-%Y")
Pour changer de format de date et passer un format de type 01/25/05 on utilis
> format(x,"%m/%d/%y")
Pour en savoir plus, consulter laide help(Date).

10

Les Matrices

Les matrices sont des objets atomiques (mme mode pour toutes les valeurs) dont les lments sont
organiss en lignes et en colonnes (dans cet ordre). Elles possdent donc 1 attribut de dimension (dim).
Elles possdent aussi un attribut optionnel dimnames (voir 11.3)
Lattribut length est le nombre total dlments et le mode celui de chacun de ses lments.

10.1

Cration

par la fonction matrix


> m<-matrix(1:8,nrow=2) rangement par colonne (par dfaut)
1 3 5 7
m:
2 4 6 8
> m<-matrix(1:8,ncol=4,byrow=T) rangement par ligne (argument byrow=T)
1 2 3 4
m:
5 6 7 8
> zero<-matrix(0,2,4) matrice (24) remplies de 0.
Par conversion explicite
> v<-as.matrix(1:3) donne la matrice (31)
1
v: 2
3
Remarque on peut poser la question R si lobjet est une matrice
> is.matrix(x) et la rponse est TRUE ou FALSE.

Formation R

10.2

Master Statistiques Appliques

Slection

Les entiers positifs :


> m[1,] donne la premire ligne : cest un vecteur !
> m[1,,drop=F] donne la premire ligne sous la forme dune matrice uniligne.
> m[,c(2,2,1)] donne la seconde, la seconde et la premire colonne : cest une matrice (23).
Les entiers ngatifs :
> m[-1,] donne la matrice m sauf la premire ligne, ici cest un vecteur.
> m[1:2,-1] donne les 2 premires colonnes de la matrice m sauf la premire colonne.
Les logiques :
On peut utiliser une slection par des vecteurs de logique (sur des lignes ou sur des colonnes) :
> m[,m[1,]>2] : toutes les colonnes de m dont les lments de la premire ligne sont suprieurs 2.
On peut utiliser une slection par une matrice de logique :
> m[m>2] donne un vecteur de tous les lments de m qui sont suprieurs 2.
> m[m>2]<-NA affecte la valeur NA tous les lments de m qui sont suprieurs 2.

10.3

Oprations particulires

Remarque le produit X*Y est lopration (ici produit) lment par lment des 2 matrices, de mme
que la somme, lexponentiation, le log, le sinus etc..
10.3.1

Algbre linaire

X%*%Y
t(X)
diag(5)
diag(vec)
crossprod(X,Y)
svd(X)
eigen(X,symmetric=T)
solve(X,Y)
chol(Y)
qr(Y)
10.3.2

produit de matrices
transposition
Identit dordre 5
matrice diagonale avec les valeurs du vecteur vec dans la diagonale
produit crois (t(X)%*%Y)
dcomposition en valeurs singulires
diagonalisation dune matrice, option matrice symtrique
inversion de matrice et rsolution de systme linaire
dcomposition de Cholesky
dcomposition QR

Fonctions utiles

Dimensions
dim(X), nrow(X), ncol(X) donnent les dimensions, le nombre de lignes et de colonnes de X, renvoient NULL si cest un vecteur.
Concatnation par colonne : cbind, par ligne rbind
1 opration faire par ligne (1re des 2 dimensions) ou par colonne (2me des 2 dimensions)
Somme par colonne : apply(X,2,sum)
Moyenne par ligne : apply(X,1,mean)
Application de la fonction f(arg1,arg2,arg3) qui prend 3 arguments en entre dont le premier est
un vecteur (qui sera chacune des lignes successivement) : apply(X,1,FUN=f,valarg2,valarg3)
sweep(mat,2,ecartype,FUN=/) permet de diviser (multiplier, soustraire etc...) chacune des colonnes (ou ligne) par un lment dun vecteur (par exemple le vecteur des cart types par colonne,
pour rduire une matrice)

10.4

Les tableaux array

Ce sont des matrices dont la dimension est suprieure 2.

Formation R

11

Master Statistiques Appliques

10

Les listes

La liste est un objet htrogne. Cest donc un ensemble ordonn dobjets qui ne sont pas forcment
tous du mme mode ni de mme longueur. Les objets sont appels composants de la liste. Remarquons
que
les composants peuvent tre de mode 6=,
les composants peuvent avoir un nom,
la liste nest pas une classe.

11.1

Cration, extraction

Cration
> tablev <- c("Paris","Lyon")
> liste <- list(1:3,ville=tablev) les composants peuvent avoir 1 nom
> as.list(1:5) conversion explicite, forme une liste 5 lments, qui sont des vecteurs numriques
de longueur 1, gaux respectivement 1, 2, 3, 4 5.
Remarque : on peut poser la question R si lobjet est une liste
> is.list(x) et la rponse est TRUE ou FALSE.
Extraction
> maliste[[2]] : 1me composante de la liste ville
> maliste$ville : 2me composante de la liste (si la composante possde 1 nom)
> maliste[[1]][1] : 1er lment de la composante 1
> maliste$ville[1] : 1er lment de la composante ville (si le composant possde 1 nom)
Attributs
Intrinsques mode (i.e. comme les modes peuvent tre diffrents il y a un mode spcial, le mode
"list"), length (i.e. le nombre de composants)
names

11.2

Listes : utilit et quelques fonctions

Une liste est souvent retourne comme rsultat par des fonctions rsidantes
lm(), glm(), aov(), eigen()...
Quelques fonctions utiles
> lapply : applique une fonction successivement chacune des composantes (comme la moyenne,
la variance etc...)
> length : nombre de composantes
> unlist(maliste) : remet la liste en vecteur (dans le mode le plus bas en priorit)
> c(liste1,liste2) : fusion des 2 listes

11.3

Listes particulires : dimnames

Dfinition : attribut optionnel dune matrice et qui contient dans une liste deux composantes les
noms des lignes et des colonnes.
Exemple :
> X <- matrix(don,n,p)
> dimnames(X)<-list(c("ligne1",...,"lignen"),c("col1",...,"colp"))
Modification :
> dimnames(X)<-list(NULL,dimnames(X)[[2]])
Slection de lignes et/ou de colonnes grce aux dimnames :
> X[c("ligne4","ligne1"),c("col3","col2")]

Formation R

12

Master Statistiques Appliques

11

Les Data Frame

Dfinition : Liste de classe "data frame" dont chacune des composantes est de mme longueur (ou pour
les matrice de mme nombre de lignes). Les modes bien sr peuvent tre diffrents

12.1

Cration, extraction

Cration :
> data.frame(mat1,vect,facteur,mat2...)
> read.table("nom_du_fichier")
> as.data.frame(toto) par conversion explicite
Extraction :
On peut utiliser la mthode pour les listes ou celle pour les matrices : dframe[[5]], dframe$nomcomp,ou
dframe[,5] ou enfin dframe[,"nomcomp"].
Remarques :
On peut poser la question R si lobjet est un data-frame
> is.data.frame(x) et la rponse est TRUE ou FALSE.
Pour transformer une matrice en data frame : data.matrix(dframe)
Rsum numrique du data frame : summary(dframe)
Entre au clavier ou correction (version ?)
> dframe <- data.entry(dframe)

13

Attach et detach (data frame et listes)

> attach(dframe,pos=2) permet de saffranchir du nom du data frame et de travailler directement


avec le nom de ses composantes (en supposant que dans le rpertoire en position 1 il ny a rien de
mme nom ; pour la notion de position voir (20, p. 17)) :
> dframe$facteur facteur
> facteur <- 2 cre alors une variable facteur de valeur 2 dans le rpertoire en position 1. Pour
actualiser facteur il faut faire
> dframe$facteur <- 2
> detach(dframe) permet de dtacher le data frame
Remarque : il est aussi possible dattacher/dtacher des listes.

14
14.1

Import - Export
Import de donnes

le plus basique : scan() (en cas de difficults ou pour rduire le temps daccs)
> entree<-scan("nomfich",what="",sep=";")
> entree vecteur caractre lu dans un fichier ASCII sparateur ;
lecture volue vers 1 data frame (voie normale)
> entree<-read.table("nomfich",sep=";",header=TRUE)
transforme les caractres en facteurs
transforme les numriques ayant peu de valeurs diffrentes en facteur
Vrifier le mode de chacune des composantes (summary puis data.matrix, as.numeric(as.vector())
ou as.integer())
Voir aussi les nombreuses options de read.table() scan().

14.2

Import de script et fonctions

Utiliser un diteur de texte (wordpad, textpad, notepad, emacs...) permet de taper ses commandes ou
ses fonctions en bnficiant des fonctionnalits dun diteur (couper/coller, deplacement la souris,
remplacer, rechercher etc...). Pour importer un srie dordres R il suffit ensuite de

Formation R

Master Statistiques Appliques

12

couper coller la zone interessante


si lon souhaite importer un fichier entier dordre
> source(C:/../nomdufichier)
Pour 1 fonction contenue dans 1 fichier il est possible dutiliser les ordres
> mafonction<-dget(nomfichier) (import de la fonction)
> dput(lafonction,C:/../nomfichier) (export de la fonction)
Le fichier contenant la fonction commence toujours par function(arg1,arg2) ...
Pour de meilleure fonctionnalit voir le logiciel GNU-Emacs avec le package ESS (gratuits).

14.3

Export de donnes

le plus basique : write()


sortie volue vers 1 data frame
> sortie<-write.table(objet,"nomfich",row.names = TRUE, col.names = TRUE)

15

La programmation

Commandes groupes
{expr1 ; expr2 ; ...}
if (condition) {
.... } else
expr2
(o expr2 peut tre une expression groupe...)
Si le boolen condition est vrai alors le premier groupe dexpression est effectu sinon le deuxime
(la condition else est optionnelle)
Boucles
for (i in vecteur) {
.... }
while (condition) {
.... }
Tant que le boolen condition est vrai les expressions {...} sont effectues. Ds que la condition
est fausse les expressions {...} ne sont plus effectues. La condition est value en tte de boucle.
repeat {
....
if (condition) break
.....}
repeat permet de rpter indfiniment les ordres {...}.
break permet une sortie anticipe des boucles
next permet daller la boucle suivante : retour direct vers le dpart de la boucle, ie for, while
ou repeat

16
16.1

Les fonctions
Dfinition, appel

exemple simple
> mafonc<-function(arg1,...) expr
> "%!%"<-function(arg1,...) expr
plus complet
> mafonc<-function(arg1,arg2) {
+ resu <- arg1+arg2
+ return(resu) } ( retourne le rsultat)

Formation R

Master Statistiques Appliques

13

Attention aux variables globales ! ! !


> mafonc<-function(arg1,arg2) {
+ resu <- arg1+arg2
+ resu<- resu + i (variable non dfinie, viter !)
+ return(resu) }
appel de la fonction : > mafonc(2,5) ou quivalent
> mafonc(arg1=2,arg2=5) ou encore
> mafonc(arg2=5,arg1=2)

16.2

Les fonctions, arguments

Arguments par dfaut


> mafonc<-function(arg1,arg2=4)
appel de la fonction : > mafonc(arg1=2)
largument 2 est pris par dfaut gal 4
> mafonc(2,5) ou quivalent
> mafonc(arg1=2,arg2=5) ou encore
> mafonc(arg2=5,arg1=2)
Arguments supplmentaires
> mafonc(arg1=2,...)

17
17.1

Les graphiques
Introduction

Ouverture/Fermeture du graphic device :


X11() / dev.off()
Dessin de points (type p) en rond (pch=o) en 2D :
> plot(1:10,1:10,type=p,pch=o) (dans lordre abscisses puis ordonnes)
Dessin de labels (nom des points)
> plot(1:10,1:10,type=n) (mise en place, aucun dessin grce type none)
> text(1:10,1:10,paste(pt,1:10,sep=) (ajout du texte pt1...pt10 aux coord. 1 :10,1 :10)
Amlioration
> plot(1:10,1:10,type="l",main="Mon Titre")
Histogramme dun echantillon alatoire (normal)
> hist(rnorm(100), main="Histogramme",prob=T)
Autres types : dotchart, piechart, barplot, boxplot, stars, pairs, coplot, interaction.plot, persp...

17.2

Personnalisation des graphiques

Voir la fonction par (taper help(par)) ! Ci dessous quelques petits exemples


> par(mfrow=c(3,2)) 3 graphiques en lignes et 2 en colonnes (6 en tout),
voir aussi layout(matrice,widths=w,heights=h)
> par(ask=T) demande confirmation chaque nouveau dessin
> par(new=F) surimpose le nouveau dessin sur lancien (attention aux axes !)
> par(fg=blue,bg=#f2a1c2) foreground en bleu et background en RGB #f2a1c2 (sorte de
rose)
> plot(1:10,2:11,xlim=(0,15),ylim=c(1,16)) dessins de points axes limits entre 0 et 15 (abscisse),et entre 1 et 16 (ordonnes)
> matlines(c(1,12),c(1,12),col=2,lty=2) ligne ajoute au graphique prcdent de couleur 2 et
type 2 (pointill).

Formation R

17.3

Master Statistiques Appliques

14

Exemples de fonctions et doptions des graphiques

Trace le graphe des valeurs de x ordonnes sur laxe des abscisses


Trace le graphe de y en fonction de x
Idem mais les points superposs sont dessins sous forme de fleurs
dont le nombre de ptales correspond au nombre de points
pie(x)
Trace un graphe en camembert
boxplot(x)
Trace le graphe en "botes et moustaches" de x
stripplot(x)
Trace le graphe des valeurs de x sur une ligne
interaction.plot(f1,f2,x, Trace le graphe des moyennes de x en fonction des valeurs des
fun=mean)
facteurs f1 (sur laxe des abscisses) et f2 (plusieurs graphes)
coplot(xy|z)
Trace le graphe bivari de x et y pour chaque valeur de z (ou un
petit intervalle de valeurs de z)
matplot(x,y)
Trace le graphe bivari de la 1re colonne de x contre la 1re colonne de y, la 2me colonne de x contre la 2me colonne de y..
pairs(x)
Si x est une matrice ou un data.frame, tracer tous les graphes
bivaris entre les colonnes de x
plot.ts(x), ts.plot(x)
Trace le graphe dune srie temporelle x en fonction du temps
hist(x,freq=T)
Trace un histogramme de x
barplot(x)
Trace un diagramme en barre (ou bande) des valeurs de x
qqnorm(x)
Trace les quantiles de x en fonction de ceux attendus dune loi
normale
qqplot(x,y)
Trace les quantiles de y en fonction de ceux de x
contour(x,y,z)
Trace des courbes de niveau
filled.contour(x,y,z)
Idem mais les aires entre les contours sont colores, voir aussi
image(x,y,z)
persp(x,y,z)
Idem mais en 3D, voir demo(persp)
symbols(x,y,...)
Dessiner aux coordonnes donnes par x et y des symboles (toiles,
cercles, boxplots...)
Les principales options pour les fonctions graphiques sont rsumes ci-dessous.
axes=TRUE ou FALSE
Si TRUE, les axes et le cadre sont tracs
type="n","p","l","b,"h","s"...
Prcise le type de graphe dessin. type="n" supprime le graphe
col="blue", col.axis, col.main... Prcise la couleur du graphe, des axes, du titre...
bg="red"
Prcise la couleur du fond
xlim=c(0,10),ylim=c(0,20)
Prcise les limites des axes
xlab="axe x",ylab="axe y"
Prcise les annotations des axes
main="titre"
Prcise le titre du graphe
sub="sstitre"
Prcise le sous-titre du graphe
bty="n","o"...
Contrle comment le cadre est trac. bty="n" supprime le cadre
cex=1.5, cex.axis, cex.main...
Contrle la taille des caractres
font=1, font.axis...
Prcise la police du texte
las="0"
Contrle lorientation des annotations des axes
lty="1"
Contrle le type de lignes traces
lwd=1.5
Contrle la largeur des lignes
pch="+","o"...
Contrle le type de symbole utilis pour le trac des points
ps=1.5
Contrle la taille en points du texte et des symboles
tck, tcl
Prcise la longueur des graduations sur les axes
mfcol=c(3,2), mfrow=c(3,2)
Partitionne le graphe en 3 lignes et 2 colonnes. Les figures sont
remplies colonnes par colonnes ou lignes par lignes
plot(x)
plot(x,y)
sunflowerplot(x,y)

18
18.1

Formules sous R
Formules sous R

Elles servent crires des modles statistiques sous forme simple

Formation R

Master Statistiques Appliques

15

Exemple de la rgression
> lm(carb~Wt+Disp,data=mtcars)
carb = |{z}
+1 W t + 2 Disp + |{z}

implicite

implicite

Les donnes proviennent du tableau mtcars


Suppression de lordonne lorigine
> carb~-1+Wt+Disp
carb = 1 W t + 2 Disp + |{z}

implicite

18.2

Formules sous R, transformation des variables

Transformation continue classique : log, exp, sin , atan...


> log(carb)~Wt+Disp
Transformation en binaire
> Age>40 cest une variable qui prend la valeur 0 si Age< 40 et 1 sinon.
Transformation en facteur
> cut(Age,3) dcoupe de la variable Age en 3 intervalle de longueur gale (ou presque)
Transformation en polynme orthogonaux :
> poly(Age,degree=3)

18.3

Formules sous R, transformation et protection

Transformation et protection
certains signes (*, ^, /) possdent des valeurs diffrentes dans une formule et dans un calcul arithmtique. Pour revenir une signification arithmtique il suffit dutiliser une protection I()
> I(Age^2) cela permet dlever Age au carr
> log(Age^2) dans un autre fonction arithmtique pas besoin de protection !

18.4

Formules sous R, Interaction, effets nids

Interaction
> Salaire~Sexe+Age+Sexe:Age
Salaire = |{z}
+1 Sexe + 2 Age + 3 Sexe Age + |{z}

implicite

> Salaire~Sexe*Age (autre syntaxe quivalent mais plus courte)


Effets nids
> Y~region+Dpt%in%region
> Y~region/Dpt (autre syntaxe quivalent mais plus courte)

18.5

Formules sous R, Facteurs

Introduction
yij

= + i + ij
moyenne gnrale
i effet du facteur A au niveau i

Si le facteur A vaut le niveau i, la rponse y vaut en moyenne + i

implicite

Formation R

Master Statistiques Appliques

16

Surparamtrisation Mme le modle le plus simple est surparamtris


yij

= + i + ij = + + ( )
| {z }
| {z }
nouveau

nouvel i

il faut rajouter des contraintes :


P
= 0 pas dintercept (option "-1")

i i = 0 cart p/p ("somme")


1 = 0 cart p/p niveau 1 ("tmoin")

18.6

Formules sous R, Contrastes et facteurs

En conclusion
Le facteur A est reprsent par (, 1 , , I 5i + 1) coefficients et 1 contrainte linaire qui relie les
coefficients entre eux
X
i i = 0
Algbre linaire :
I + 1 vecteurs relis par une contrainte linaire I vecteurs indpendants

Nouveaux coefficients , 1 , , I+1


Passage des nouveaux aux anciens par

1


1
.. = C 0 ..
.
.
I

I1

Gnralement = . Les coefficients , 1 , ...I seront en gnral diffrents selon le type de


contrainte choisies et cest normal.

18.7

Formules sous R, Contrastes et facteurs

Sous R la matrice C des contrastes ou C 0 sa transpose se calcule comme


> contr.treatment(levels(facteur))
> contr.sum(levels(facteur))
> contr.helmert(levels(facteur))
> contr.poly(levels(facteur))

18.8

Codage des facteurs

fact : facteur I modalits. Soit i le coefficient associ au ime niveau du facteur fact.
Affectation dun contraste
P
Contraste de type somme Ii=1 i = 0 :
> contrasts(fact)<-contr.sum(levels(fact))
> fact<-C(fact,sum) (autre syntaxe)
Contraste de type traitement-tmoin 1 = 0 (Par dfaut pour les factor))
> contrasts(fact)<-contr.treatment(levels(fact))
> fact<-C(fact,treatment) (autre syntaxe)
Contraste polynomial (Par dfaut pour les ordered)
> contrasts(fact)<-contr.poly(levels(fact))
> fact<-C(fact,poly) (autre syntaxe)

Formation R

18.9

Master Statistiques Appliques

17

Codage des facteurs, suite

Voir la valeur dun contraste


> contrasts(fact)
contrasts est un attribut de fact :
> attributes(fact)
contrast renvoie une matrice de contraste
Attention au s ! !
Changement ponctuel (dans un modle)
Dans un modle lm
> lm(y~a+b,contrasts=list(a="contr.sum",b="contr.poly"),data=dframe)
le facteur a du data frame dframe possde un contraste sum
le facteur b du data frame dframe possde un contraste poly

19

Modlisations, quelques exemples

En gnral les ordres sont les mmes quelque soit la modlisation choisie.
calcul du modle
res<-lm(y~x1+x2)
rsum dun modle
summary(res)
dessin dun modle
plot(res)
extraction des rsidus
residuals(res)
extraction des coefficients
coefficients(res)
prdiction du modle
predict(res)
De nombreuses autres options sont disponibles en fonction des modles, par exemple pour deux modles
linaires le rsum donne aussi la matrice de corrlation estime des coefficients
summary(res,cor=T)
Nous pouvons comparer des modles par AIC extractAIC(res) ou par anova aov(res,res1). Le choix
de modle peut tre fait par des mthodes ascendantes ou descendantes (step). Les modles darbre
de rgression ou de discrimination offrent aussi de nombreuses fonctions particulires :
library(rpart) (bibliothque de programmes pour les arbres qui doivent tres chargs. Dautres
bibliothques existent, taper library() pour voir celles disponibles sur votre machine)
res<-rpart(y~., data=mesdonnees) (le point . signifie que lon prend toutes les autres variables de
mesdonnees autres que y).
plot(res)
text(res)
snip.rpart(res)...

20

Rgles de recherches des objets

Les objets sont par dfaut stocks dans la session courante .GlobalEnv, qui est tout simplement un
fichier au format de R (extension .Rd).
Quand on utilise une fonction ou un objet, R recherche dans les fichiers, les data frames attachs, les
listes attaches ou les rpertoires (par exemple ceux contenant les fonctions rsidantes ou les bibliothques de programme library) selon 1 ordre fix. La position pos dtermine lordre de prsance.
Pour consulter cet ordre il suffit de taper

Formation R

Master Statistiques Appliques

18

> search()
[1] ".GlobalEnv"
[4] "package:graphics"
[7] "package:datasets"

"package:methods"
"package:stats"
"package:grDevices" "package:utils"
"Autoloads"
"package:base"

Ainsi dans cet exemple si lon utilise x, R va chercher sa valeur dans le premier de la liste : .GlobalEnv
qui est la session courante. Si il ne trouve pas x il va chercher sa valeur comme une variable du data
frame mtcars sinon dans la liste listeb etc... Si il ne trouve rien il affiche une erreur.
Pour attacher un fichier, une liste... , il suffit dutiliser
> attach(maliste,pos=3) (attachement en 3me position).
Quand on excute une fonction, R cre 1 nouveau frame qui est un environnement local dans lequel
sont cres toutes les nouvelles variables ou fonctions de la fonction. Ce frame est limin la sortie de
la fonction ce qui explique que lon ne retrouve jamais les variables locales dune fonction. Les frames se
superposent au dessus du frame global (l o les assignements sont permanents et gards dans le fichier
de la session courante). Ds que R ne trouve pas la fonction ou la variable, il redescend dun frame
et recherche jusqu arriver au frame global. Si il ne trouve rien il affiche une erreur. On peut quand
mme dans une fonction assigner des objets dans un autre frame infrieur par la fonction assign().

21

Librairies de programmes (packages)

Des programmes supplmentaires sont disponibles sous forme de librairies (ou packages). Pour consulter
ceux disponible sur votre machine
> library()
Pour appeller (ou utiliser) un programme dune librairie (par exemple la librairie MASS) il faut au
pralable la charger dans la session par
library(MASS)
et ensuite toutes les fonctions de cette librairie sont accessibles.
Pour installer un package disponible sur CRAN, il suffit daller sur la page de CRAN (http://cran.
univ-lyon1.fr/ ou http://cran.cict.fr/), de cliquer ( gauche) sur Packages, de choisir son package (cliquer) et de le tlcharger en version windows binary (sous windows) ou package source
(sous Linux/Unix). Pour windows dans le menu Packages, un sous menu permet dinstaller le package
(Install package(s) from local zip file) ; sous Linux/Unix dans une fentre de commande, compiler et installer le package avec R CMD INSTALL monpackage_1.0.1.tar.gz, avec les droits root (ou
consulter laide).

22

Rien ne marche ?

consulter laide des fonctions utilises ou laide gnrale


> help(lm) aide sur la fonction lm
> help.start() aide html plus conviviale
cest bloqu : Control-C ou icone stop (sous windows)
il y a une erreur dans ma boucle ou ma fonction : debuggage
Utiliser la fonction > browser() :
>res <- NULL
>x<-1:10
>for (i in 1:100) {
> y<-2*x+rnorm(10,sd=10/i)
> browser()
> res[i]<-coef(lm(y~x)) }
lexecution sarrete au niveau du browser (fureteur). Lecran affiche
Browse[1]>

Formation R

Master Statistiques Appliques

19

Entrer des commandes comme


Browse[1]> i;x;y affiche i, x, et y (ils existent)
Browse[1]> coef(lm(y~x)) calcul des coefficients de la regression de y sur x (cela marche).
Pour sortir du browser, tapez Q (majuscule), pour continuer lexecution tapez c. Voir aussi debug...

Vous aimerez peut-être aussi