Académique Documents
Professionnel Documents
Culture Documents
2 Introduction sur R
3 La session R
4 Les
4.1
4.2
4.3
4.4
4.5
4.6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
2
2
3
3
3
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
11
11
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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
17
18
22 Rien ne marche ?
18
ii
Formation R
Introduction gnrale
Introduction sur 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
> 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
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
4.3
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
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
Formation R
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).
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
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)
7.3
Quelques oprations
7.4
7.5
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
7.6
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
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
Formation R
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
Formation R
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
> 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
Formation R
10.2
Slection
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
Formation R
11
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
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
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
11
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
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
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
12
14.3
Export de donnes
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
13
16.2
17
17.1
Les graphiques
Introduction
17.2
Formation R
17.3
14
18
18.1
Formules sous R
Formules sous R
Formation R
15
Exemple de la rgression
> lm(carb~Wt+Disp,data=mtcars)
carb = |{z}
+1 W t + 2 Disp + |{z}
implicite
implicite
implicite
18.2
18.3
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
Interaction
> Salaire~Sexe+Age+Sexe:Age
Salaire = |{z}
+1 Sexe + 2 Age + 3 Sexe Age + |{z}
implicite
18.5
Introduction
yij
= + i + ij
moyenne gnrale
i effet du facteur A au niveau i
implicite
Formation R
16
= + i + ij = + + ( )
| {z }
| {z }
nouveau
nouvel i
18.6
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
1
1
.. = C 0 ..
.
.
I
I1
18.7
18.8
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
17
19
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
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
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
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 ?
Formation R
19