Universit´e Paris-Ouest-Nanterre-La D´efense ISEFAR Classification
Ana Karina Fermin et M´elanie Zetlaoui
Introduction ` a R
1 Quelques concepts
Le logicielRest un logiciel libre (donc gratuit) t´el´echargeable sur internet `a l’adresse suivante : http://cran.r-project.org
Ce logiciel utilise des lignes de commandes. Il faut donc taper les commandes dans la console pour les ex´ecuter, les s´eparateurs de commandes ´etant ”;” ou le retour `a la ligne. Le prompt est >, ou+si la commande est incompl`ete.
Les symboles<-et =sont utilis´es pour d´efinir un object.
On affiche un objet en tapant son nom.
Rdistingue les minuscules et les majuscules.
Une commande utile pour lister les object cr´e´es :ls().
Il est possible d’ins´erer des commentaires dans le programme en les faisant pr´ec´eder du caract`ere#.
2 L’aide
Le logicielRposs`ede un syst`eme d’aide auquel on peut acc´eder de diff´erentes mani`eres :
- Si l’on tape?suivi du nom de la fonction ouhelp(nomdelafonction),Rouvre une fenˆetre avec les informa- tions relatives `a la fonction demand´ee.
- On peut ouvrir une page html permettant l’utilisation d’un moteur de recherche en tapant la commande help.start().
- Les fonctions apropos("motcl´e")et help.search("motcl´e")retournent la liste des fonctions contenant le
“motcl´e” dans leur nom.
3 Cr´ eer des donn´ ees
3.1 Cr´ eation de vecteurs
On peut cr´eer des vecteurs de diff´erentes fa¸cons :
- On peut utiliser la fonction de concat´enationc():
> x=c(2,6,5,8,1,3,9)
> x
[1] 2 6 5 8 1 3 9
> x1=c(10,11,12);x1
> x2=c(x,x1);x2
[1] 2 6 5 8 1 3 9 10 11 12 - On peut cr´eer des suites r´eguli`eres :
> 3:15
[1] 3 4 5 6 7 8 9 10 11 12 13 14 15
> rep(1,times=5) [1] 1 1 1 1 1
> rep(1:3,times=5)
[1] 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
> seq(from=1,to=5,by=0.5)
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
> seq(from=1,to=5,length=10)
[1] 1.000000 1.444444 1.888889 2.333333 2.777778 3.222222 3.666667 4.111111 [9] 4.555556 5.000000
- On peut g´en´erer des nombres (pseudo-)al´eatoires grˆace aux fonctionsrnorm (normale),rexp(exponentielle), runif(uniforme),rpois(poisson),rbinom(binomiale),rchisq(χ2),rt(Student).
La commandelength(x)permet de connaˆıtre la longueur du vecteurx.
1
3.2 Cr´ eation de matrices
Pour cela on utilise la fonctionmatrix. Les optionsncoletnrowpermettent de d´efinir les dimensions de la matrice.
> y=matrix(0,nrow=2,ncol=3)
Il existe une optionbyrowqui permet de rentrer les valeurs par lignes et non par colonnes.
> y1=matrix(c(1,2,3,4,5,6),nrow=2,ncol=3);y1 [,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
> y2=matrix(c(1,2,3,4,5,6),nrow=2,ncol=3,byrow=TRUE);y2 Pour connaˆıtre la dimension d’une matrice on utilise la fonctiondim.
> dim(y1) [1] 2 3
4 Op´ erations
Voici une liste non exhaustive d’op´erateurs et fonctions d’op´eration (voir l’aide m´emoire pour une liste plus compl`ete).
— op´erateurs arithm´etiques : +, -, *,/,^ ,%%(modulo),%/%(division enti`ere)
— autres op´erations arithm´etiques :mean(x), sd(x)(´ecart-type),var(x),quantile(x),sort(x)(´el´ements de xordonn´es)
— op´erateurs de comparaison :==,<,>,<=,>=,!=
— calcul matriciel : x%*%y,t(x),diag(x)
— nombres al´eatoires :qnorm,qt,qexp(pr´efixeq: quantile),pnorm,pt,pexp(pr´efixep: fonction de r´epartition), dnorm,dt,dexp(pr´efixe d: densit´e).
> X=rnorm(100); mean(X); sd(X)
> X2=rnorm(1000000); mean(X2); sd(X2); quantile(X2)
> qnorm(0.95); pnorm(1.96); pnorm(1.645); qnorm(c(0,.25,.5,.75,1))
> Y=rnorm(100,mean=1,sd=2); mean(Y)-1; sd(Y)/2
> Y2=rnorm(1000000,mean=1,sd=2); mean(Y2)-1; sd(Y2)/2
> quantile ((Y2-1)/2)
5 Graphiques
La principale fonction permettant de tracer des graphiques estplot. Les optionsxlabetylabpermettent de modifier le nom des axes tandis que l’optionmainpermet d’ajouter un titre (toutes les options disponibles sont d´etaill´ees dans la page d’aide). La commandeX11()ouvre une nouvelle fenˆetre graphique vierge.
> vx=1:10;vy=seq(from=0,to=1,length=10)
> plot(vx,vy)
> plot(vx,vy,xlab="vecteur x",ylab="vecteur y",main="Representation de vy en fonction de vx") On peut relier les points par des lignes grˆace `a l’option type=’l’.
> plot(vx,vy,xlab="vecteur x",ylab="vecteur y",main="vy en fonction de vx",type=’l’)
On veut tracer deux graphiques dans une mˆeme fenˆetre graphique grˆace `a la commandepar(mfrow=c(1,2)):
> par(mfrow=c(1,2))
> plot(vx,vy,xlab="vecteur x",ylab="vecteur y", main="vy en fonction de vx")
> plot(vx,vy,xlab="vecteur x",ylab="vecteur y", main="vy en fonction de vx",type=’l’)
On peut ajouter des lignes ou courbes grˆace `a la fonction lines(). Par exemple, pour superposer les graphes des densit´es des loisN(0,1), N(0,1.5) etN(1,1.5), on peut taper les commandes
> x=seq(from=-3,to=4,by=0.1)
> densiteX=dnorm(x);densiteY=dnorm(x,sd=1.5);densiteZ=dnorm(x,mean=1,sd=1.5)
> plot(x,densiteX,xlim=c(-3,4),type="l",lwd=2,lty=1,ylab="",xlab="",main="densites gaussiennes")
> lines(x,densiteY,type="l",lwd=2,lty=2)
> lines(x,densiteZ,type="l",lwd=2,lty=4)
> legend("topright",c("densite N(0,1)","densite N(0,1.5)","densite N(1,1.5)"), + lty=c(1,2,4),lwd=c(2,2,2))
2