You are on page 1of 82

FORMATION AU LOGICIEL R

(dure : 2 jours)
version du 04 Novembre 2011
Andr Bouchier
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R

2006-2011, Andr Bouchier (4 Novembre 2011)
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
Le document Formation au logiciel R by A.Bouchier est mis disposition selon les termes de la licence
Creative Commons Paternit-Pas !"tilisation Commerciale-Partage es Conitions Initiales # l!Ientique 2$0
%rance.
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
1-Qu'est ce que R
R : logiciel multiplateforme
R : systme statistique et graphique
R : un logiciel et un langage
R : logiciel libre
R : un logiciel gratuit
R : un logiciel au dveloppement trs actif
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
2-Installer le logiciel
Obtenir le logiciel (version Windows)
http://cran.r-project.org/bin/windows/base/R-2.14.0-win.exe
nstaller le logiciel
Lancez le programme R-2.14.0-in.e!e, puis suivez les instructions affiches
l'cran.
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
"- #rise en main
Taper $trl % pour nettoyer la fentre 'Rconsole'
Faire des oprations : 5+9 10^2 2^0.5 sqrt(2)
Utiliser la flche (clavier) pour faire dfiler les commandes dj tapes
La souris permet de slectionner (de copier-coller) les lignes dans Rconsole
Utiliser les parenthses
4+9*2-1 = 21
(4+9)*2-1 = 25
(4+9)*(2-1) = 13
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
4-&toc'er les rsultats dans des (aria)les
On construit une flche avec * et -
a<-10
b<-3
c<-a+b
ou
a+b->c
Afficher le contenu de la variable c
c
[1] 13
l'ensemble peut s'crire :
a<-10 ; b<-3 ; c<-a+b ; c
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
+-Quelques o,rations
Arithmtique
+ - * / ^ (puissance)
%ogique
> < <= >= == (gal) != (diffrent) & (et) | (ou) ! (non) xor (ou exclusif)
e!em,le
8^(1/3) = racine cubique de 8

Attention au! ,arenth-ses .
8^1/3 = 2.666667
8^(1/3) = 2
Pour citer R ans une publication & citation'(
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
/-%e r,ertoire de tra(ail
Par dfaut, R lit et crit dans le rpertoire de travail
Connatre le rpertoire de travail de R :
getwd()
[1] "C:/Documents and Settings/bouchier/Mes documents"
pour retrouver vos donnes soyez attentif au rpertoire de travail
Changer le rpertoire de travail de R :
Utiliser le menu : fichier-> 'Changer le rpertoire courant'
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
0-$hanger de r,ertoire de tra(ail 1 2onction setd34
Le chemin du rpertoire de travail peut tre fastidieux crire
setwd("C:/Documents and Settings/bouchier/Mes documents/Enquetes")
Deuxime solution :
setwd("5") # le rpertoire perso de l'utilisateur est : 5
setwd("5/Enquetes") # erreur si ce rpertoire n'existe pas
Remarque : pour connatre le contenu d'un rpertoire : dir34
dir3657rgis64
[1] "Carto.pdf" "departement"
[3] "FRA.dbf" "FRA.prj"
[5] "FRA.qpj" "FRA.shp"
[7] "FRA.shx" "france"
[9] "R.pn!" "maps.pdf"
dir3657rgis68 ,attern96.sh,64
[1] "FRA.shp"
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
:-%'en(ironnement de tra(ail
Les donnes cres au cours d'une session peuvent tre sauvegardes. Les fichiers
de donnes R portent l'extension $Rata
La commande sauver l'environnement de travail
copie toutes les donnes en mmoire dans un fichier
l'extension .Rdata
la fermeture, R vous propose de sauvegarder
l'environnement de travail.
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
;-%ecture de donnes 3donnes d'e!em,le4
R est fourni avec des fichiers de donnes d'exemple
liste des fichiers disponibles : data()
Charger en mmoire le tableau de donnes "iris"
data(iris)
Que contient ce tableau ?
iris ou head(iris)
Une prsentation graphique
pairs(iris)
En savoir plus sur ce tableau de donnes
?iris
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
10-%ecture de donnes 32ormat )inaire R4
On peut stocker des donnes au format R (extension .Rdata)
Lecture du fichier de donnes R < voit2005.Rdata =
load(file.choose())
Le fichier de donnes a-t-il t charg en mmoire ?
ls()
[1] "voit2005"
Sauver un tableau de donnes
Un fichier de donnes .Rdata peut contenir plusieurs data.frames
save(iris, voit2005, file= "test.Rdata")
dir(pattern=".Rdata")
[1] "test.Rdata"
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
11->)?ets en mmoire
%a 2onction ls34 ,ermet de lister les o)?ets en mmoire
ls()
Plus de dtails avec ls.str()
ls.str()
print(ls.str(), max.level = 0)
Effacer des objets en mmoire
rm(a,b)
Effacer tous les objets en mmoire
rm(list=ls())
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
12-@A,es de donnes 1 les classes
Bector 1 une variable dans le sens gnral
is.vector(x) ; as.vector(x)
Factor 1 variable qualitative (facteur)
is.factor() ; as.factor()
ArraA 1 une matrice (donnes du mme type)
is.matrix() ; as.matrix()
Cata.2rame 1 un jeu de donnes compos de vecteurs de mme dimension.
is.data.frame() ; as.data.frame()
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
1"-$onnaDtre le tA,es de donnes
Une classe d'objet peut tre compos de donnes de diffrents types
numrique, caractre, entier, rel, logique
Utiliser la fonction typeof() ou la fonction str()
a<-"inra"
typeof(a)
[1] "character"
a<-4
typeof(a)
[1] "double"
a<-as.integer(a)
typeof(a)
[1] "integer"
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
14-Etiliser un data.2rame 314
Connatre le nom des variables du data.frame
names(voit2005)
Les dimensions du data.frame [ lignes , Colonnes ]
dim(voit2005)
dim(voit2005)[1] # nombre de lignes
dim(voit2005)[2] # nombre de colonnes
Le nombre de colonnes
length(voit2005)
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
1+-Etiliser un data.2rame 324
Il e!iste ,lusieurs 2aFons d'accder au! (aria)les du data.2rame
En prcisant le nom du data.frame pour chaque variable
plot(voit2005$Longueur, voit2005$Largeur)
Par leur numro ( voir names'voit200)( )
plot(voit2005[,3], voit2005[,4])
En attachant le data.frame 3uniquement pour la lecture4
attach(voit2005)
plot(Longueur, Largeur)
detach()
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
1/-G!traire des donnes dHun data.2rame 3 indexation 4
Les 5 premires lignes avec les variables 2 5
voit2005[1:5, 2:5]
Les 5 premires lignes mais avec les variables 1, 3 et 6
voit2005[1:5, c(1,3,6)]
Toutes les lignes (sauf la 3
me
), toutes les variables (sauf la 1
re
)
voit2005[-3, -1]
Les 5 premires lignes, toutes les variables sauf les n 1, 3, et 5
voit2005[1:5, c(-1,-3,-5)]
On conserve les individus pour lesquels la puissance > 10
voit2005[voit2005$Puissance>10, ]
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
10-G!traire des donnes dHun data.2rame 3 fonction subset() 4
Ne conserver que les variables "Puissance" et "Vitesse" et que les vhicules dont la
vitesse maxi est suprieure 200 km/h
subset(voit2005, Vitesse > 200, select = c(Puissance, Vitesse))
"#$ssance %$tesse
A&fa'Romeo 155 (.) 1) ()5
A&fa'Romeo 1*+ (.5 , 7 ()(
-./ 73)$ 1* (((
C$troen 0. (.)$ 11 ()1
C$troen 0. %* 1* (((
Ford 1corp$o (9))$ 15 ()1
"e#!eot *)5 12(+ 1* (35
G!ercice 1 en utilisant la fonction subset(), slectionnez les vhicules dont la
consommation est infrieure 6l/100 et la puissance fiscale gale = 4 CV
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
1:-Identi2ier les lignes du ta)leau de donnes
Toutes les lignes d'un data.frame ont un identificateur unique
row.names(voit2005)
On peut accder un individu en particulier
voit2005["Renault 21 Prima TD", ]
Ou une collection d'individus
voit2005[c("Renault 21 Prima TD","BMW 518i"), 1:3]
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
1;-G!ercice
Reprsentez graphiquement l'ensemble des relations x-y des donnes
quantitatives du data.frame iris
Extraire les donnes de la varit virginica. Quelles sont les moyennes des
variables pour cette varit ( fonction mean() )
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
20-@A,es de donnes dans un (ecteur
> is.numeric(iris$Petal.Length)
[1] TRUE
# test sur toutes les variables : sapply() retourne une liste
> sapply(iris, is.numeric)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
TRUE TRUE TRUE TRUE FLSE
# numro des variables numriques
> which(sapply(iris, is.numeric))
Sepal.Length Sepal.Width Petal.Length Petal.Width
1 ! " #
# noms des variables numriques
> names(which(sapply(iris, is.numeric)))
[1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
# Rcupration des numros de variables
> as.vector(which(sapply(iris, is.numeric)))
[1] 1 ! " #
# Reprsentation graphique
$ nu%ero&'(hich)sappl*)iris+ is.nu%eric,,
$ pairs)iris[ + nu%ero],
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
21-Inrer une squence
Rpter une valeur
rep("non", 20)
Squence simple
z<-2:12
Attention,
avec x<-10 comparez 1:x-1 et 1:(x-1)
On peut utiliser la fonction seq() pour modifier l'incrment
seq(1, 9, 0.5)
La fonction seq() peut calculer les lments de la srie
seq(length=8, from=1, to=5)
[1] 1.)))))) 1.571+(9 (.1+(357 (.71+(3* 3.(3571+ 3.3571+3 +.+(3571 5.))))))
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
22-%es squences alatoires

Loi normale
x<-rnorm(1000,mean=0, sd=1)
Loi uniforme
x<-runif(100,min=2,max=4)
On peut vrifier la prcision de ces fonctions avec
mean(x) ;var(x)
exercice : essa*e+ avec 10 , 100 inivius, puis avec 10000 et 100000
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
2"-Cemander de lHaide
En savoir plus sur une fonction
?mean
?median
?QR
Comment importe-t-on des fichiers textes ?
?read.table
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
24-Jcrire des scri,ts a(ec un diteur de te!te
#remi-re solution 1 diteur de scri,t R
Ouvrez l'diteur de texte fourni par R
Saisissez vos commandes
# 1000 valeurs suivant une loi normale {0,1}
x<-rnorm(1000,mean=0, sd=1)
#Calcul de la moyenne
mean(x)
#Calcul de la variance
var(x)
Transfrez-les dans la fentre R
1. Ctrl-A tout slectionner
2. Ctrl-R coller vers R-console
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
Ceu!i-me solution 1 @inn-R 3uniquement pour Windows4
disponible cette adresse http://www.sciviews.org/Tinn-R/
avec coloration syntaxique et copie-coller direct vers R
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
@roisi-me solution 1 Rstudio
multiplateforme, disponible cette adresse : http://rstudio.org/
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
2+-Im,orter les donnes d'un 2ichier te!te
Lire un fichier de donnes texte avec donnes manquantes codes M, le sparateur
dcimal est une virgule (fichier bledur.txt)
bledur <- read.table( "~/bledur.txt", header=T, na.string="M", dec=",", sep=" ")
Si vous ne connaissez pas le format du fichier texte des donnes :
file.show(file.choose()) # affichez le contenu d'un fichier texte
Plus simplement, de faon interactive :
bledur <- read.table(file.choose(), header=T, na.string="M", dec=",", sep=" ")
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
2/-G!ercices
En utilisant l'diteur de script de R :
importez le fichier texte voit2005.txt
combien de lignes et de variables possde-t-il ?
Quelles sont les moyennes des variables Longueur, Largeur et Surface du
data.frame voit2005 ?
Combien de vhicules ont une cylindre plus petite que 1000 cm
3
?
Quel est l'cart-type de la variable Longueur ?
Quelle est sa mdiane, sa moyenne, son QR ?
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
20-Baria)les du 2ichier e!em,le < )ledur =
Ces donnes sont extraites d'une enqute agronomique
"Numero" identifiant de la parcelle
"RDT" rendement en grains la rcolte
"PLM" nombre de plantes leves par m
"ZON" zone gographique
"ARG" taux d'argile dans le sol
"LM" taux de limon dans le sol
"SAB" taux de sable dans le sol
"VRT" codes des 6 varits cultives
"PGM" poids de 1000 grains la rcolte
"MST" matire sche totale la rcolte (arien + racinaire)
"AZP" taux d'azote dans la plante
"VRTC" varits cultives aprs regroupement en 3 classes
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
2:-%e 2ormat de donnes R
Le data.frame "bledur" peut tre enregistr au format R en utilisant
la fonction save()
save(bledur, file = "bledur.Rdata")
Ce fichier est sauvegard dans le rpertoire de travail par dfaut
Pour changer le rpertoire de travail
setwd(dirname(file.choose())) # le rpertoire choisi ne peut pas tre vide
save(bledur, file = "bledur.Rdata")
Un fichier .Rdata peut tre charg l'aide de la fonction load()
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
2;-#assage dHG!cel7>,en->22ice K R 32ormat cs(4
Saisissez ces donnes sous Excel ou OpenOffice. C'est un extrait du tableau de
donnes cars ( ?cars - pour en savoir plus )
Enregistrer ce tableau au format csv sous le nom de : cars20.cs(
Attention bien choisir le sparateur de champs (ici un ;)
Pour le lire, utilisez la fonction "read.table()"
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
"0-Lodi2ier les donnes dHun ta)leau
Lecture du tableau
cars20<-read.table("~/cars20.csv", header=T, sep=";")
crer une nouvelle variable vitesse en km/h
vitkmh<-cars20$speed*1.61
l'ajouter au tableau de donnes
cars20<-data.frame(cars20, vitkmh)
modifier une variable (distance en mtres)
cars20$dist<-cars20$dist*30.48
renommer une variable
names(cars20)[2]<-"distmetres"
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
speed d$stmetres 2$t4mh
1 + *).9* *.++
( + 3)+.3) *.++
3 7 1(1.9( 11.(7
+ 7 *7).5* 11.(7
5 3 +37.*3 1(.33
"1-Irer des donnes

Quand c'est possible, utilisez des outils de gestion de donnes (voir robc)
Cependant, R permet :
de crer un nouveau tableau de donnes
xnew <- edit(data.frame())
de crer un nouveau tableau partir d'un tableau existant
xnew <- edit(bledur)
d' diter un objet (le modifier)
cars20 <- edit(cars20)
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
"2-&u,,rimer les donnes manquantes
Supprimer les donnes manquantes de tout le tableau
na.omit(voit2005)
compter le nombre d'individus ayant des donnes manquantes
dim(voit2005)[1] - dim(na.omit(voit2005))[1]
[1] 10

e!ercice : lire le fichier prouit$t-t. Attention, il contient des donnes manquantes.
1.Quelle est la moyenne de la variable PRODUT ?
2.Combien de lignes contiennent des donnes manquantes ?
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
""-Moindre des ta)leau! de donnes
nous disposons de 2 fichiers (format csv) issus de l'NSEE :
1.Diplome2008.csv : contient pour quelques dpartements le taux de non
diplms parmi la population de plus de 15 ans.
2.Pauvrete.csv : contient pour quelques dpartements le taux de pauvret au
seuil de 60%
les dpartements disponibles ne sont pas identiques pour les 2 fichiers
pour joindre ces fichiers de donnes :
1.lire les tableaux de donnes avec la fonction read.table()
2.joindre ces donnes avec la fonction merge()
pa#2rete5'read.tab&e6f$&e.choose678 sep9":"8 header9,8 dec9"8"7
d$p&ome5'read.tab&e6f$&e.choose678 sep9":"8 header9,8 dec9"8"7
mer!e6pa#2rete8 d$p&ome7
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
"4-Moindre des ta)leau! de donnes 3suite4
Le rsultat de merge(pauvrete, diplome) correspond aux 10 dpartements prsents
la fois dans les 2 data.frame. ls ont t automatiquement joints grce la colonne
commune LBGEO
;-<=> ?=" ,A@0*) C>?<=> ")3A?;")AB1C>15"
1 ArdCche 7 1+.) 7 13.3
( Ar$C!e 9 1*.9 9 19.1
3 A#de 11 19.3 11 (1.9
+ A2eDron 1( 15.) 1( 1*.(
5 <ard 3) 13.) 3) ().(
* <ers 3( 1+.9 3( 17.9
7 EFra#&t 3+ 17.5 3+ 13.+
3 oGCre +3 15.7 +3 13.(
9 "#D'de'?Hme *3 1(.3 *3 1+.*
1) "DrFnFes'>r$enta&es ** 19.1 ** ().(
En vous aidant de l'aide fournie par R, crez un tableau :
1.contenant tous les dpartements prsents dans les 2 data.frame
2.ne contenant que les dpartements contenus dans le data.frame "diplome"
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
"+-Ccrire des (aria)les quantitati(es
summary(bledur[ , c(2,3,5,6,7,9,10,11)])
maliste<-c(2,3,5,6,7,9,10,11) # liste des donnes quantitatives
summary(bledur[ , maliste])
Un paramtre statistique pour chaque niveau d'une variable qualitative :
aggregate(bledur[,maliste], list("variete"=bledur$VRTC), mean)
aggregate(bledur[,maliste], list("variete"=bledur$VRTC, "zone"=bledur$ZON), mean)
2ar$ete Gone R?, ". AR< ;. 1A- "<. .1, AI"
1 1 1 11.+) 1)3.+) 33.5( +1.5) 19.93 33.)) 35.3( 3.3*
( ( 1 3.+5 1(3.+) (7.*9 5(.+* ().35 39.5( (3.*+ 3.+5
3 3 1 13.** 37.)) (7.)5 53.3) 19.*5 +(.*5 35.3* 3.1*
+ 1 ( 9.93 1)1.)) (1.(( 3(.9* +5.3( 39.37 31.*3 3.13
5 ( ( 1(.7* 139.5) (+.(5 33.() +(.55 3(.)) 37.97 3.**
* 3 ( 13.)7 117.5) ().95 39.*) 39.+5 +3.3) 31.17 (.91
7 1 3 11.(9 137.(5 17.1) 13.5+ *+.3* +).53 33.99 3.(7
3 ( 3 3.*1 1*).73 ().++ (9.+3 5).1( 3).77 (3.+( (.37
9 3 3 15.1) 117.)) 31.1) +7.7) (1.() 3).7) +1.3) 3.3+
On peut calculer : mean, sd, max, min, median, sum, ...
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
"/-%es histogrammes 314
Les donnes quantitatives
hist(bledur$RDT)
On peut choisir le nombre de barres
hist(bledur$RDT,nclass=5)
Pour avoir les bornes et les effectifs des classes
hist(bledur$RDT, nclass=5, plot=F)
Choisir ce dont on a besoin :
a<- hist(bledur$RDT, nclass=5, plot=F)
names(a)
bornes<-a$breaks
[1] - . 1- 1. !- !.
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
Nistogram o2 )ledurORC@
bledur$RDT
F
r
e
q
u
e
n
c
y
0 5 10 15 20 25
0
5
1
0
1
5
"0-%es histogrammes 324
Attention, quelle diffrence entre ?
attac.'bleur(
hist(VRT)
barplot(VRT)
barplot(summary(VRT))
barplot(summary(as.factor(VRT)))
etac.'bleur(
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
1 2 3 4 5 6
0
5
1
0
1
5
2
0
":-Boites K ,attes
Boite simple
boxplot(bledur$RDT)
Une boite par niveau de facteur
boxplot(split(bledur$RDT,bledur$ZON))
ou
boxplot(bledur$RDT~bledur$ZON) # rsultat identique
Pour rendre le graphique plus lisible, ajouter un titre
title("Rendement", sub="Donnes NRA", ylab= "Effectifs",
xlab= "zones gographiques")
Reprsenter les individus
rug(bledur$RDT, side=2)
Exporter le graphique sous diffrents formats. Menus File/Save as/.
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
";-%es camem)erts

Les donnes doivent tre prpares
pie(bledur$VRT) # mauvais
pie(summary(as.factor(bledur$VRT))) # correct
Attention l'ordre d'apparition des niveaux de facteur
summary(as.factor(bledur$VRT))
On ajoute un nom "explicite" pour chaque secteur
nom<-c("Var1","Var2","Var3","Var4","Var5","Var6")
pie(summary(as.factor(bledur$VRT)), label=nom)
On ajoute un titre principal
titre<-"Les varits cultives"
pie(summary(as.factor(bledur$VRT)), label=nom, main=titre)
Laide de R nous dit : Pie c.arts are a ver* ba /a* o0 ispla*ing in0ormation$ 1.e
e*e is goo at 2uging linear measures an ba at 2uging relative areas$
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
Var1
Var2
Var3
Var4
Var5
Var6
%es (arits culti(es
40-En gra,hique en !-A
Simple graphique
plot(bledur$PLM,bledur$RDT)
Graphique "comment"
titre<-"Rendement*Plantes par m"
x<-"Nombre de plants par m" ; y<-"Rendement"
plot(bledur$PLM,bledur$RDT, main=titre, xlab=x,ylab=y)
Graphique illustr
plot(bledur$PLM,bledur$RDT)
text(bledur$PLM,bledur$RDT,labels=bledur$ZON)
exercice 1 les points et les numros se superposent. Comment rendre les
numros plus lisibles ? (?plot et ?text)
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
41-Ira,hique de toutes les (aria)les quantitati(es
Vrifier la linarit des relations entre variables avant de lancer une ACP
maliste<-c(2,3,5,6,7,9,10,11) # les variables quantitatives
pairs(bledur[,maliste])
title("Enqute Algrie ", sub="Donnes NRA")
Comment afficher le titre sans cacher l'chelle ?
pairs(bledur[,maliste], main="Enqute Algrie")
title(sub="Donnes NRA")
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
42-%e test du Phi2
Crer le tableau crois
table(bledur$ZON, bledur$VRTC)
Prciser le nom des variables
table(bledur$ZON, bledur$VRTC, dnn=c("Zones gographiques","Les
varits"))
Tester l'indpendance
tb<-table(bledur$ZON,bledur$VRTC)
summary(tb)
On peut simuler un tirage alatoire
chisq.test(tb, simulate.p.value = TRUE, B = 10000)$p.value
B#mber of cases $n tab&eJ 5)
B#mber of factorsJ (
,est for $ndependence of a&& factorsJ
Ch$sq 9 3.()78 df 9 +8 p'2a&#e 9 ).)3+3
Ch$'sq#ared approx$mat$on maD be $ncorrect
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
4"-%es corrlations
Choisir les donnes quantitatives
maliste<-c(2,3,5,6,7,9,10,11)
Un tableau des corrlations
cor(bledur[,maliste])
Prcisions sur les coefficients de corrlation
cor.test(bledur$LM,bledur$SAB, method = "pearson")
cor.test(bledur$LM,bledur$SAB, method = "kendall")
"earsonKs prod#ct'moment corre&at$on
dataJ b&ed#rL;. and b&ed#rL1A-
t 9 '15.5)9*8 df 9 +38 p'2a&#e 5 (.(e'1*
a&ternat$2e hDpothes$sJ tr#e corre&at$on $s not eq#a& to )
95 percent conf$dence $nter2a&J
').9+99*+* ').35)9*+1
samp&e est$matesJ
cor
').913)++5
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
44-Ira,hique 1 e!em,le
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
0 50 100 150 200 250
2
0
0
4
0
0
6
0
0
8
0
0
1
0
0
0
1
2
0
0
#oids du cer(eau 7 ,oids du cor,s
Poids du corps
P
o
i
d
s

d
u

c
e
r
v
e
a
u
Potar monkey
Gorilla
Human
Rhesus Monkey
Chimp
4+-Ira,hiques 1 gestion des ,aram-tres
Sauver les paramtres avant de les modifier : "touche panique"
Stocker tous les paramtres par dfaut
old.par <- par(no.readonly = TRUE)
Dessiner un graphique en modifiant les paramtres
par(bg="aliceblue",col="red")
plot(.......)
nitialiser les paramtres aux valeurs par dfaut
par(old.par)
De nombreux exemples de graphiques sont visibles cette adresse :
http://addictedtor.free.fr/graphiques/
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
4/-Ira,hiques 1 e!ercice
Les donnes
Bodywt<-c( 10, 207, 62, 6.8, 52.2)
Brainwt<-c(115, 406, 1320, 179, 440)
Noms<-c("Potar monkey", "Gorilla", "Human", "Rhesus Monkey", "Chimp")
Couleur de fond du graphique
par(bg="aliceblue", col="red")
Le titre et les labels
titre<-"Poids du cerveau / poids du corps"
labelX<-"Poids du corps"
labelY<-"Poids du cerveau"
Le graphique 3pch=type de point4
plot(Bodywt, Brainwt, xlim=c(5,250), main=titre, xlab=labelX, ylab=labelY, pch=16)
text(Bodywt, Brainwt, labels=Noms, adj=0)
Les couleurs disponibles 1 colors()
e!ercice 1 Comment rendre ce graphique le plus laid possible ? Modifiez les
couleurs, les tailles de caractres, ...
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
40-Ccou,er la 2enQtre gra,hique
La fentre graphique en 4 parties
par(mfcol=c(2,2))
La fentre graphique en 6 parties
par(mfcol=c(3,2))
La fentre graphique en 6 parties
par(mfcol=c(2,3))
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
4:-Ccou,er la 2enQtre gra,hique 1 un e!em,le
Description de la variable rendement
par(mfcol=c(2,2))
boxplot(bledur$RDT)
hist(bledur$RDT)
plot(bledur$RDT,bledur$PLM)
pie(summary(as.factor(bledur$VRT)))
par(mfcol=c(1,1))
Remarque 1 Les fonctions split.screen() ou layout() peuvent aussi tre aussi utilises
pour dcouper la fentre graphique
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
0
5
1
0
1
5
2
0
Nistogram o2 )ledurORC@
bledur$RDT
F
r
e
q
u
e
n
c
y
0 5 10 15 20 25
0
5
1
0
1
5
0 5 10 15 20
5
0
1
0
0
1
5
0
2
0
0
2
5
0
bledur$RDT
b
l
e
d
u
r
$
P
L
M
1
2
3
4
5
6
4;-$o,ier-coller des donnes (ers >,en->22ice 3ou e!cel4
Utilisez le fichier de donnes d'exemple "iris"
Copier le data.frame "iris" dans le presse papier (clipboard)
write.table(iris,"clipboard", sep="\t", dec=",", row.names=F, col.names=T)
Ouvrir Excel ou OOo et coller le presse papier dans une feuille de calcul
Attention, si il y a un identifiant de ligne (row.names=T)
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
S'il y a un identifiant de lignes, on obtient un dcalage des noms de colonnes
dans le tableur :
write.table(iris,"clipboard", sep="\t", dec=",", row.names=T, col.names=T)
Une solution : crer une nouvelle colonne contenant l'identifiant
numeros<-row.names(iris)
don<- data.frame(numeros, iris)
write.table(don,"clipboard", sep="\t", dec=",", row.names=F, col.names=T)
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
"1" 5,1 3,5 1,4 0,2
"2" 4,9 3 1,4 0,2
"3" 4,7 3,2 1,3 0,2
"4" 4,6 3,1 1,5 0,2
"5" 5 3,6 1,4 0,2
"Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Species"
"setosa"
"setosa"
"setosa"
"setosa"
"setosa"
"1" 5,1 3,5 1,4 0,2
"2" 4,9 3 1,4 0,2
"3" 4,7 3,2 1,3 0,2
"4" 4,6 3,1 1,5 0,2
"5" 5 3,6 1,4 0,2
"numeros" "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Species"
"setosa"
"setosa"
"setosa"
"setosa"
"setosa"
+0-Etiliser des )i)lioth-ques de 2onctions
Si la bibliothque est dj installe sur votre machine :
1) On peut utiliser le menu de R
Packages -> Charger le package, puis cliquez sur la bibliothque dsire
2) On peut aussi taper l'instruction suivante dans la console
library(nom de la bibliothque)
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
+1-les )i)lioth-ques dis,oni)les
Pour consulter les bibliothques installes sur votre machine
cliquez sur aide -> aide N@L%, puis, dans la page html : #ac'ages
( sous Gnu/Linux tapez : hel,.start34 dans la console R )
Pour consulter les bibliothques disponibles sur internet
rendez-vous sur le site : htt,177li).stat.cmu.edu7R7$RAR7
dans le menu de gauche, cliquez sur #ac'ages
Attention, certaines bibliothques ne fonctionnent que sous GNU/Linux, d'autres
ne sont utilisables que sous MS-Windows
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
+2-Installer une )i)lioth-ques de 2onctions
Vous avez une connexion internet,
c'est le cas le plus simple. On peut utiliser le menu de R
package -> installer le(s) package(s) puis suivez les instructions
Vous n'avez pas de connexion internet
vous installerez une bibliothque partir d'un fichier local (sur CD-Rom,
extension .zip). Attention aux dpendances !
package -> installer le(s) package(s) depuis des fichiers zip
on peut effectuer les mmes oprations en utilisant la fonction :
install.packages()
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
+"-Bi)lioth-que de 2onction 1 lire un 2ichier L&-G!cel
On utilisera la bibliothque de fonctions xlsReadWrite
library(xlsReadWrite)
read.xls(file.choose(), colNames= TRUE, sheet= 1, from= 1, rowNames=T)
en choisissant le tableau Excel Science on obtient :
A73 A74 A75 A76 A77 A78
LifeSciences 4489 4303 4402 4350 4266 4361
PhysicalSciences 4101 3800 3749 3572 3410 3234
SocialSciences 3354 3286 3344 3278 3137 3008
BehavioralSciences 2444 2587 2749 2878 2960 3049
Engineering 3338 3144 2959 2791 2641 2432
a!he"a!ics 1222 1196 1149 1003 959 959
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
+4-Bi)lioth-que de 2onction 1 lire7crire un 2ichier dBase
On utilisera la fonction read.dbf() de la bibliothque foreign
library(foreign)
read.dbf(file.choose()) # importez le fichier her.dbf situ
dans le rpertoire "data/Enquetes"
Pour exporter au format dBase, on utilisera la fonction write.dbf()
write.dbf(iris, file="~/iris.dbf")
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
Sepal_Leng,N,19,15 Sepal_Widt,N,19,15 Petal_Leng,N,19,15 Petal_Widt,N,19,15 Species,C,10
5,100000000000000 3,500000000000000 1,400000000000000 0,200000000000000 setosa
4,900000000000000 3,000000000000000 1,400000000000000 0,200000000000000 setosa
4,700000000000000 3,200000000000000 1,300000000000000 0,200000000000000 setosa
4,600000000000000 3,100000000000000 1,500000000000000 0,200000000000000 setosa
++-$ration d'une liste 3list4
la diffrence d'un tableau de donnes, il n'y a pas de contrainte sur le type
d'lments contenus dans une liste.
#ar e!em,le 1
data(iris)
iris.date<-date()
iris.cor<-cor(iris[,-5])
iris.legend<-"Un exemple de liste R"
iris.resume<-summary(iris)
iris.liste<-list(date=iris.date,cor=iris.cor,legend=iris.legend, resume=iris.resume)
names(iris.liste)
[1] "date" "cor" "legend" "resume"
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
+/-Etilisation d'une liste 3list4
Extraction par index
> iris.liste[[1]]
314 5%ri 6ep 21 07&89&)9 200:5
Extraction par nom
> iris.liste$date
314 5%ri 6ep 21 07&89&)9 200:5
Extraction d'un sous-lment
> iris.liste$resume[1,]
6epal$;engt. 6epal$<it. Petal$;engt. Petal$<it. 6pecies
5Min$ &4$800 5 5Min$ &2$000 5 5Min$ &1$000 5 5Min$ &0$100 5 5setosa &)0 5
> iris.liste[[4]][1,]
6epal$;engt. 6epal$<it. Petal$;engt. Petal$<it. 6pecies
5Min$ &4$800 5 5Min$ &2$000 5 5Min$ &1$000 5 5Min$ &0$100 5 5setosa &)0 5
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
+0-Rgression linaire
Rappel : lecture des donnes bledur.txt
bledur<-read.table(file.choose(), header=T, na.string="M", dec=",", sep=" ")
Le modle
modele<-lm(RDT~MST,data=bledur)
Les rsultats
summary(modele)
Une reprsentation graphique
plot(bledur$MST,bledur$RDT)
abline(modele, lwd=2, col="red")
title("Rgression linaire")
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
20 30 40 50 60
0
5
1
0
1
5
2
0
bledur$MST
b
l
e
d
u
r
$
R
D
T
Rgression linaire
+:-Rgression linaire 1 les rsultats
Que contient le modle ?
names(modele)
Plus prcisment
coef(modele)
predict(modele)
Une reprsentation graphique des rsidus
plot(bledur$MST,modele$residuals,main="Rsidus RDT*MST", type="h")
abline(0,0)
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
20 30 40 50 60
-
1
0
-
5
0
5
Rsidus RC@SL&@
bledur$MST
m
o
d
e
l
e
$
r
e
s
i
d
u
a
l
s
+;-Gt si la rgression n'est ,as linaire T le lissage
Ajustement par lissage
# Fits a cubic smoothing spline
sp <- smooth.spline(bledur$MST,bledur$RDT, spar = 0.9)
# Projection des points sur un graphe XY
plot(bledur$MST,bledur$RDT,col.main="blue", main="Ajustement par lissage")
# trac de l'ajustement :
lines(spline(sp), col="red", lwd=2)
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
20 30 40 50 60
0
5
1
0
1
5
2
0
A?ustement ,ar lissage
bledur$MST
b
l
e
d
u
r
$
R
D
T
/0-Ene rgression non linaire
Utilisation de la fonction poly()
mod<-lm(bledur$RDT ~ poly(bledur$MST, 3))
Le graphique en XY avec sa courbe de rgression
plot(bledur$MST,bledur$RDT, col.main="blue", main="Modle non linaire")
lines(spline(bledur$MST, mod$fitted.values), col="red", lwd=2)
Les paramtres du modle
mod
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
20 30 40 50 60
0
5
1
0
1
5
2
0
Lod-le non linaire
bledur$MST
b
l
e
d
u
r
$
R
D
T
/1-AnalAse de la (ariance 1 les donnes
Lecture des donnes : tableau anova.txt
expe<-read.table(file.choose(), header=T, sep=";", dec=".")
#attention les facteurs doivent tre prpars
expe$bloc<-as.factor(expe$bloc) ; expe$trait<-as.factor(expe$trait)
On travaille par dfaut sur le data.frame "expe"
attach(expe)
Observation graphique des donnes
boxplot(mesure ~ bloc, horizontal = F, main="Analyse de la variance",
ylab = 'variable mesure', xlab = 'les blocs', col = "pink" )
detach(expe)
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
1 2 3
8
0
1
0
0
1
2
0
1
4
0
1
6
0
AnalAse de la (ariance
les blocs
v
a
r
i
a
b
l
e

m
e
s
u
r

e
/2-AnalAse de (ariance K 2 2acteurs 1 l'AR>BA
Test d'galit des variances
bartlett.test(expe$mesure,expe$bloc)
bartlett.test(expe$mesure,expe$trait)
Analyse de variance
expe.aov <- aov(mesure ~ bloc + trait, data=expe)
summary(expe.aov)
s#mmarD6expe.ao27
?f 1#m 1q .ean 1q F 2a&#e "r6MF7
b&oc ( +9(.* (+*.3 ).9595 ).+)131
tra$t 9 *+*).( 717.3 (.79*+ ).)3)(* N
Res$d#a&s 13 +*().+ (5*.7
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
/"-AnalAse de (ariance K 2 2acteurs 1 les rsidus
Vrification de la normalit des rsidus
# test de shapiro
shapiro.test(expe.aov$residuals)
# histogramme des rsidus
hist(expe.aov$residuals, freq=F, xlab="", main="Les rsidus")
lines(density( expe.aov$residuals), col="red")
rug(jitter(expe.aov$residuals, 5))
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
/4-%es rsidus8 re,rsentation gra,hique enrichie
a?outer la densit de la cour)e normale
f <- function(t) # fonction densit d'une loi normale
{
dnorm(t, mean=mean(expe.aov$residuals), sd= sd(expe.aov$residuals) )
}
curve(f, add=T, col="blue", lwd=3, lty=2)
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
%es rsidus
D
e
n
s
i
t
y
-40 -20 0 20 40
0
.
0
0
0
0
.
0
0
5
0
.
0
1
0
0
.
0
1
5
0
.
0
2
0
/+-AnalAse de (ariances 1 test &RP
Cette fonction est disponible dans le bibliothque agricolae
library(agricolae) # chargement de la bibliothque
modele<-aov(mesure ~ trait, data=expe)
SNK.test(modele,"trait", main="Effet du traitement")
.eans O$th the same &etter are not s$!n$f$cant&D d$fferent
<ro#ps8 ,reatments and means
a * 15(.)(*7
ab 5 133.13
ab 9 1(*.3*33
ab 1 1(5.3+33
ab 3 1((.*3
ab ( 1().9(
ab 7 115.35
ab + 1)9.1+*7
b ) 1)*.71*7
b 3 99.)9**7
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
//-AnalAse de (ariance 1 les interactions
R propose des graphiques d'interaction
par(mfrow=c(2,1))
attach(expe)
interaction.plot(bloc, trait, mesure, col = 2:20, lwd=2)
interaction.plot(trait, bloc, mesure, col = 2:20, lwd=2)
detach(expe)
par(mfrow=c(1,1))
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
8
0
1
0
0
1
2
0
1
4
0
1
6
0
bloc
m
e
a
n

o
f


m
e
s
u
r
e
1 2 3
trait
6
5
7
1
2
4
3
8
9
0
8
0
1
0
0
1
2
0
1
4
0
1
6
0
trait
m
e
a
n

o
f


m
e
s
u
r
e
0 1 2 3 4 5 6 7 8 9
bloc
2
1
3
/0-#uissance d'une e!,rience
Si vous ne connaissez pas les variances inter et intra :
# delta est la diffrence de rsultat qu'on dsire mettre en vidence
x<-sd(expe.aov$residual) # 12.62238 = cart-type du rsidu
power.t.test(power=NULL, n=3 , sd = x, delta = 50)
T(o'sa%ple t test po(er calculation
n / "
delta / .-
sd / 1!.0!
sig.le1el / -.-.
po(er / -.2###3
alternati1e / t(o.sided
45TE6 n is nu%ber in 7each7 group
Remarque : le Package 'samplesize' fournit des fonctions de calcul de taille d'chantillons.
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
/:-Etilisation des dates
Rcupration des dates/heures du systme
Sys.time() ; Sys.Date()
Mise en forme des dates/heures (voir strptime() pour les formats)
format(Sys.time(), "%a %b %d %X %Y")
[1] "ven. nov. 04 17:13:56 2011"
Cration d'une squence temporelle
serie<-seq(as.Date("2000/1/1"), as.Date("2000/1/31"), by="days")
format(serie, "%d-%A-%Y")
Cration d'un vecteur au format date
dates <- c("02/27/92", "02/27/92", "01/14/92", "02/28/92", "02/01/92")
as.Date(dates, "%m/%d/%y")
[1] "1992-02-27" "1992-02-27" "1992-01-14" "1992-02-28" "1992-02-01"
Calcul de dures
x<-as.Date("2001/1/31") - as.Date("2000/1/1")
as.numeric(x)
[1] 396
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
/;-Recodage de (aria)les
Utilisation de la fonction recode() de la bibliothque "car"
# utilisation du data.frame bledur ; variable quantitative
recode)bledur8R9T+
"
lo6. / 1 :
.61- / ! :
1-61. / " :
1.6hi / # :
else / 4
" ,
# utilisation du data.frame bledur ; variable qualitative
recode)iris8Species+
"
c);setosa;+ ;1ersicolor;, / ;<1; :
else / ;<!;
" ,
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
00-Rediriger les sorties (ers des 2ichiers
Rediriger du texte de R vers un fichier .txt
on utilisera la fonction sink()
Rediriger les graphes R vers des fichiers images
on utilisera les fonctions png() ou jpeg() (ev$o00'( pour clore le 0ic.ier image)
on peut aussi utiliser la fonction savePlot()
Pour une mise en page directement dans un traitement de texte (OpenOffice)
on utilisera la bibliothque odfWeave et la fonction odfWeave()
pour en savoir plus : http://alea.fr.eu.org/pages/intro-R
e!em,le 1 le fichier 'nlin.png' est cr dans le rpertoire de travail
png)=ile/"nlin.png"+ bg/"transparent",
mod<-lm(bledur$RDT ~ poly(bledur$MST, 3))
plot)bledur8>ST+bledur8R9T+ col.%ain/"blue"+ %ain/"4on lin?aire",
lines)spline)bledur8>ST+ %od8=itted.1alues,+ col/"red"+ l(d/!,
de1.o==),
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
01-AnalAse en com,osantes ,rinci,ales 1 les (aria)les
Le tableau des donnes : $onso.t!t
donconso<-read.table(file.choose(),header=T,dec=",",sep=" ")
Les histogrammes de toutes les variables
par(mfrow=c(3,2))
for(i in 2:6)
{
hist(donconso[,i],main=names(donconso)[i], xlab="")
}
par(mfrow=c(1,1))
Les relations entre les variables quantitatives
pairs(donconso[,-1])
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
Bread
F
r
e
q
u
e
n
c
y
20 22 24 26 28 30 32
0
1
2
3
4
5
6
7
Burger
F
r
e
q
u
e
n
c
y
80 90 100 110
0
2
4
6
8
Lil'
F
r
e
q
u
e
n
c
y
50 55 60 65 70 75 80 85
0
1
2
3
4
5
6
7
>ranges
F
r
e
q
u
e
n
c
y
70 80 90 100 110 120 130 140
0
2
4
6
8
@omatoes
F
r
e
q
u
e
n
c
y
35 40 45 50 55 60 65
0
1
2
3
4
5
6
02-%HA.$.#. 1 2onction ,rincom,34
l existe plusieurs bibliothques permettant des analyses multivaries
On charge la bibliothque contenant les fonctions
library(stats)
La variable "zone" devient identifiant des individus
row.names(donconso)<-donconso$zone
On cre une matrice ne contenant que les donnes numriques analyser
donpca<-as.matrix(donconso[,-1])
On lance l'analyse en composantes principale
z<- princomp(donpca)
summary(z)
@%portance o= co%ponents6
Ao%p.1 Ao%p.! Ao%p." Ao%p.# Ao%p..
Standard de1iation 1#.#B""!-! 2."00B-B" 0.--!-231 #.#01.3## 1.B-!!11#!-
Proportion o= <ariance -..33".1# -.!#0#121 -.1-113!3 -.-..2-30 -.--31"313!
Au%ulati1e Proportion -..33".1# -.3"#BB-# -.2".2."! -.2213013 1.---------
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
0"-%HA.$.#. 1 les rsultats
mpression d'un rsum des rsultats
summary(z)
Histogramme des valeurs propres
plot(z, main="Eboulis des valeurs propres")
Le plan principal (individus + cercle de corrlation)
biplot(z)
abline(h=0,v=0)
Les composantes principales
z$scores
Exercice : 0aire une =CP sur
le 0ic.ier e onnes 6cience$t-t
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
G)oulis des (aleurs ,roo,res
V
a
r
i
a
n
c
e
s
0
5
0
1
0
0
1
5
0
2
0
0
-0.4 -0.2 0.0 0.2
-
0
.
4
-
0
.
2
0
.
0
0
.
2
Comp.1
C
o
m
p
.
2
Atlanta
Baltimore
Boston
Buffalo
Chicago
Cincinnati
Cleveland
Dallas
Detroit
Honolulu
Houston
Kansas City
Los Angeles
Milwaukee
Minneapolis
New York
Philadelphia
Pittsburgh
St. Louis
San Diego
San Francisco Seattle
Washington, DC
-60 -40 -20 0 20 40
-
6
0
-
4
0
-
2
0
0
2
0
4
0
Bread
Burger
Milk
Oranges
Tomatoes
04-$rer une 2onction 314
Cette fonction doit dessiner un graphique XY et tracer une droite de rgression.
Le programme qu'on veut "simplifier"
# lecture des donnes : fichier bledur.txt
bledur <- read.table(file.choose(), header=T, na.string="M", dec=",", sep=" ")
# rgression linaire
z<-aov(bledur$SAB ~ bledur$LM)
# graphe XY
plot(bledur$LM , bledur$SAB , ylab="SAB",xlab="LM")
# ajout de la droite de rgression
abline(z)
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
0+-$rer une 2onction 324
La fonction :
grapheXY<-function(X,Y,TAB)
{
attach(TAB)
z<-aov(Y ~ X)
titre<-paste("Relation entre ",substitute(X), " et ",substitute(Y))
plot(X, Y, ylab= substitute (Y), xlab= substitute (X), main=titre)
abline(z)
detach(TAB)
}
Remarque : il peut->tre utile !insrer es commentaires$$$
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R
0/-Etilisation de la 2onction
Sauvegarder la fonction
sauvegarder la fonction dans un fichier : grapheXY.R (attention l'extension)
Charger la fonction
pour l'utiliser, lire le fichier contenant vos fonctions avec le menu
File7&ource R code
ou insrer cette instruction dans votre script
source("emplacement sur le isque/grapheXY.R")
Utiliser la fonction
grapheXY(LM, ARG, bledur)
Montpellier 4 Novembre 2011 Initiation au logiciel statistique R

You might also like