12.07.2015 Views

1 Introduction - Qu'est-ce que le logiciel R? 2 Objectifs de ce ... - LMPA

1 Introduction - Qu'est-ce que le logiciel R? 2 Objectifs de ce ... - LMPA

1 Introduction - Qu'est-ce que le logiciel R? 2 Objectifs de ce ... - LMPA

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.2 SuiteExemp<strong>le</strong> 3.1 Si vous souhaitez créer la suite d’entiers <strong>de</strong> 1 à 12, on peut procé<strong>de</strong>r <strong>de</strong> la sorte :>suitesuite[1] 1 2 3 4 5 6 7 8 9 10 11 12On peut éga<strong>le</strong>ment utiliser la fonction seq, qui crée une suite (sé<strong>que</strong>n<strong>ce</strong>) <strong>de</strong> nombres et possè<strong>de</strong> trois arguments :from, to et by :>seq(from=1,to=12,by=1)[1] 1 2 3 4 5 6 7 8 9 10 11 12On peut éga<strong>le</strong>ment écrire plus simp<strong>le</strong>ment :>seq(1,12,1)[1] 1 2 3 4 5 6 7 8 9 10 11 12Exemp<strong>le</strong> 3.2 Vous souhaitez créer un vecteur formé par <strong>le</strong>s éléments d’une suite arithméti<strong>que</strong> <strong>de</strong> premier terme20, <strong>de</strong> <strong>de</strong>rnier terme 40 et <strong>de</strong> raison 5, vous pouvez encore utiliser la fonction seq :>seq(from=20,to=40,by=5)[1] 20 25 30 35 403.3 Combinaison ou vecteurIl est possib<strong>le</strong> <strong>de</strong> saisir une série <strong>de</strong> va<strong>le</strong>urs numéri<strong>que</strong>s, caractères ou logi<strong>que</strong>s.Exemp<strong>le</strong> 3.3 >serie1serie1[1] 1.20 36.00 5.33 -26.50Que remar<strong>que</strong>z-vous ?Exemp<strong>le</strong> 3.4 >serie2serie2[1] "b<strong>le</strong>u" "vert" "marron"Remar<strong>que</strong> 3.2 Si un vecteur est composé <strong>de</strong> caractères et <strong>de</strong> nombres, <strong>le</strong> vecteur sera un vecteur <strong>de</strong> chaînes <strong>de</strong>caractères. Quand <strong>le</strong>s composantes du vecteur sont <strong>de</strong>s chaînes <strong>de</strong> caractères, il est obligatoire <strong>de</strong> <strong>le</strong>s déclarer entreguil<strong>le</strong>ments, sinon R ne reconnaît pas <strong>le</strong>s composantes du vecteur :>serie2serie3serie3[1] TRUE TRUE FALSE FALSE TRUEExemp<strong>le</strong> 3.6 Lors d’une étu<strong>de</strong> statisti<strong>que</strong>, il peut arriver <strong>que</strong> <strong>ce</strong>rtaines données ne soient pas disponib<strong>le</strong>s : la donnéeest dite manquante. Pour saisir une donnée manquante, il est conseillé d’utiliser <strong>le</strong> symbo<strong>le</strong> NA (Not Availab<strong>le</strong>),<strong>que</strong>l<strong>le</strong> <strong>que</strong> soit la nature <strong>de</strong> l’objet : numéri<strong>que</strong>, caractère ou logi<strong>que</strong> :3/9


serie4serie4[1] 1.20 36.00 NA -26.503.4 Mo<strong>de</strong> et longueurLes objets sont caractérisés par <strong>de</strong>ux attributs : <strong>le</strong> mo<strong>de</strong> et la longueur.• Le mo<strong>de</strong> est <strong>le</strong> type <strong>de</strong>s éléments d’un objet. Comme nous venons <strong>de</strong> <strong>le</strong> voir, un objet peut être une va<strong>le</strong>urnuméri<strong>que</strong>, une chaîne <strong>de</strong> caractères ou une va<strong>le</strong>ur logi<strong>que</strong>.• La longueur est <strong>le</strong> nombre d’éléments <strong>de</strong> l’objet.Par exemp<strong>le</strong>, si vous saisissez une série d’observations obtenues sur un échantillon sous la forme d’un vecteur, lalongueur <strong>de</strong> <strong>ce</strong> vecteur correspondra à la tail<strong>le</strong> <strong>de</strong> l’échantillon. Pour connaître <strong>le</strong> mo<strong>de</strong> et la longueur d’un objet,vous utiliserez <strong>le</strong>s fonctions mo<strong>de</strong> et <strong>le</strong>ngth :>mo<strong>de</strong>(serie1)[1] "numeric">mo<strong>de</strong>(serie2)[1] "character">mo<strong>de</strong>(serie3)[1] "logical"><strong>le</strong>ngth(serie1)[1] 4><strong>le</strong>ngth(serie2)[1] 3><strong>le</strong>ngth(serie3)[1] 53.5 Saisie au clavier d’un jeu <strong>de</strong> donnéesEn utilisant la fonction scan(), la saisie d’une série <strong>de</strong> données peut paraître moins fastidieuse.>jeu1jeu1[1] 1.20 36.00 5.33 -26.503.6 Éléments d’un vecteurIl est possib<strong>le</strong> <strong>de</strong> <strong>de</strong>man<strong>de</strong>r l’affichage d’un (ou <strong>de</strong> plusieurs) élément(s) d’un vecteur en spécifiant entre crochets,en plus du nom du vecteur, l’indi<strong>ce</strong> <strong>de</strong> l’élément du vecteur. Par exemp<strong>le</strong>, pour afficher respectivement <strong>le</strong> troisièmeélément <strong>de</strong> serie1 et ses troisième et quatrième éléments, on utilisera :>serie1[3][1] 5.33>serie1[3 :4][1] 5.33 -26.504 Manipu<strong>le</strong>r <strong>de</strong>s vecteursPlusieurs opérations sont possib<strong>le</strong>s sur <strong>le</strong>s vecteurs : concaténation, extraction, calculs, répétition, légen<strong>de</strong> ettri.4/9


4.1 Concaténer <strong>de</strong>ux vecteursIl est possib<strong>le</strong> <strong>de</strong> concaténer <strong>de</strong>ux vecteurs (formés <strong>de</strong> variab<strong>le</strong>s <strong>de</strong> même type) pour en former un nouveau :>xyzz[1] 2.3 3.5 6.0 14.0 12.0 3.2 5.0 0.7 1.0 3.54.2 Extraire <strong>de</strong>s données d’un vecteurIl est possib<strong>le</strong> d’extraire <strong>de</strong>s données d’un vecteur.1. Utiliser un vecteur pour préciser <strong>le</strong> numéro d’ordre <strong>de</strong>s composantes à extraire. Ainsi, pour extraire <strong>le</strong>s 2èmeet 5ème composantes du vecteur x :>x[c(2,5)][1] 3.5 12.02. L’utilisation du signe « tiret »permet <strong>de</strong> supprimer <strong>de</strong>s composantes, par exemp<strong>le</strong> pour supprimer <strong>le</strong>s 2èmeet 3ème composantes du vecteur x :>x[-c(2,3)][1] 2.3 14.0 12.03. Utiliser un vecteur formé <strong>de</strong> va<strong>le</strong>urs logi<strong>que</strong>s. Par exemp<strong>le</strong>, pour obtenir un vecteur ne contenant <strong>que</strong> <strong>le</strong>scomposantes supérieures à 4, vous pouvez utiliser la comman<strong>de</strong> :>x[x>4][1] 6 14 12Si vous disposez <strong>de</strong> <strong>de</strong>ux vecteurs ayant <strong>le</strong> même nombre <strong>de</strong> composantes, vous pouvez <strong>de</strong>man<strong>de</strong>r à afficher <strong>le</strong>sva<strong>le</strong>urs <strong>de</strong> l’un pour <strong>le</strong>s<strong>que</strong>l<strong>le</strong>s <strong>le</strong>s va<strong>le</strong>urs <strong>de</strong> l’autre sont supérieures (ou inférieures) à une <strong>ce</strong>rtaine va<strong>le</strong>ur. Parexemp<strong>le</strong>, <strong>le</strong>s vecteurs x et y sont composés <strong>de</strong> 5 va<strong>le</strong>urs. Vous pouvez <strong>de</strong>man<strong>de</strong>r à extraire <strong>de</strong> y <strong>le</strong>s va<strong>le</strong>urs <strong>de</strong> ypour <strong>le</strong>s<strong>que</strong>l<strong>le</strong>s x est supérieur à 4 en utilisant la ligne <strong>de</strong> comman<strong>de</strong>s suivante :>y[x>4][1] 0.7 1.0 3.54.3 Faire <strong>de</strong>s calculs sur <strong>le</strong>s composantes d’un vecteurR peut faire <strong>de</strong>s calculs sur l’ensemb<strong>le</strong> <strong>de</strong>s composantes d’un vecteur :>20+x*5[1] 31.5 37.5 50.0 90.0 80.0>(x+y)/2[1] 17.125 20.875 28.250 51.000 46.3754.4 Rempla<strong>ce</strong>r <strong>de</strong>s données dans un vecteurIl est possib<strong>le</strong> <strong>de</strong> rempla<strong>ce</strong>r <strong>ce</strong>rtaines composantes d’un vecteur par <strong>de</strong> nouvel<strong>le</strong>s va<strong>le</strong>urs.Considérons une suite <strong>de</strong> va<strong>le</strong>urs numéri<strong>que</strong>s :>xx[3]x[1] 1 2 35 4 5 6 7 8 9 105/9


Exemp<strong>le</strong> 4.2 Si vous vou<strong>le</strong>z rempla<strong>ce</strong>r la va<strong>le</strong>ur 1 par la va<strong>le</strong>ur 25, vous utiliserez alors la ligne <strong>de</strong> comman<strong>de</strong>ssuivante :>x[x==1]x[1] 25 2 35 4 5 6 7 8 9 10Exemp<strong>le</strong> 4.3 Si vous vou<strong>le</strong>z rempla<strong>ce</strong>r toutes <strong>le</strong>s va<strong>le</strong>urs supérieures ou éga<strong>le</strong>s à 5 par 20, vous utiliserez la ligne<strong>de</strong> comman<strong>de</strong>s suivante :>x[x>=5]x[1] 20 2 20 4 20 20 20 20 20 204.5 Répéter <strong>le</strong>s données d’un vecteurLa fonction rep admet <strong>de</strong>ux arguments x et times et crée un vecteur où x est répété times fois.Exemp<strong>le</strong> 4.4 Vous créez une variab<strong>le</strong> donnees par :>donneesrep(x=donnees,times=2)Exemp<strong>le</strong> 4.5 Vous pouvez éga<strong>le</strong>ment <strong>de</strong>man<strong>de</strong>r qu’un vecteur contienne 50 fois la va<strong>le</strong>ur 1 :>rep(1,50)Exemp<strong>le</strong> 4.6 ou 4 fois la chaîne <strong>de</strong> caractères "chien" :>rep("chien",4)4.6 Nommer <strong>le</strong>s composantes d’un vecteurIl est possib<strong>le</strong> <strong>de</strong> donner un nom à cha<strong>que</strong> composante d’un vecteur.Exemp<strong>le</strong> 4.7 Le vecteur notes.Jean contient <strong>le</strong>s notes obtenues par Jean en anglais, informati<strong>que</strong> et biologie.• Première façon : vous pouvez utiliser la comman<strong>de</strong> :>notes.Jeanmatierematiere>notenames(note)noteanglais informati<strong>que</strong> biologie12.0 19.5 14.06/9


Remar<strong>que</strong> 4.1 Pour supprimer <strong>le</strong>s noms, on tapera la ligne <strong>de</strong> comman<strong>de</strong>s :>names(note)sort(note)[1] 12.0 14.0 19.5ou dans l’ordre décroissant :>rev(sort(note))[1] 19.5 14.0 12.05 Lire <strong>de</strong>s données dans un fichierQuand <strong>le</strong>s données sont plus volumineuses, il n’est pas très conseillé d’utiliser R comme outil <strong>de</strong> saisie. Dans <strong>ce</strong>cas, vous pouvez utiliser un éditeur <strong>de</strong> texte ou un tab<strong>le</strong>ur <strong>que</strong>lcon<strong>que</strong> pour saisir vos données (Ex<strong>ce</strong>l par exemp<strong>le</strong>)et <strong>le</strong> transférer ensuite sous R.Il est né<strong>ce</strong>ssaire d’indi<strong>que</strong>r au <strong>logiciel</strong> R l’endroit où sont stockés <strong>le</strong>s fichiers <strong>de</strong> données. Ceci peut être fait soit àcha<strong>que</strong> chargement <strong>de</strong> fichier soit pour la durée <strong>de</strong> cha<strong>que</strong> utilisation du <strong>logiciel</strong>.Pour connaître <strong>le</strong> répertoire <strong>de</strong> travail actuel<strong>le</strong>ment utilisé par R, qui est par défaut <strong>le</strong> répertoire où <strong>le</strong> <strong>logiciel</strong> estinstallé, il suffit <strong>de</strong> taper l’instruction suivante :>getwd()Pour changer <strong>le</strong> répertoire <strong>de</strong> travail par défaut, pour la durée <strong>de</strong> la session R, pour par exemp<strong>le</strong> <strong>le</strong> répertoire”C :/Data”, il suffit <strong>de</strong> taper :>setwd("C :\\Data")ou <strong>de</strong> manière équiva<strong>le</strong>nte>setwd("C :/Data")Pour <strong>de</strong>s raisons liées à la syntaxe <strong>de</strong> R, plus précisément la syntaxe <strong>de</strong>s systèmes Unix, la barre obli<strong>que</strong> inversée« \ » a été remplacée soit par une barre obli<strong>que</strong> « / » soit par <strong>de</strong>ux barres obli<strong>que</strong>s inversées ”\\”.Dans <strong>le</strong> dossier relatif au TP 1, vous trouverez <strong>de</strong>s fichiers au format texte (.txt) tab<strong>le</strong>1.txt, tab<strong>le</strong>2.txt,tab<strong>le</strong>3.txt, tab<strong>le</strong>4.txt, <strong>de</strong>s fichiers au format csv (.csv) tab<strong>le</strong>5.csv et tab<strong>le</strong>6.csv et enfin <strong>de</strong>s fichiers auformat Ex<strong>ce</strong>l (.xls) tab<strong>le</strong>7.xls et tab<strong>le</strong>8.xls. Faites <strong>de</strong>venir <strong>ce</strong> répertoire <strong>le</strong> répertoire <strong>de</strong> travail par défaut <strong>de</strong> R.Les données suivantes ont été saisies dans <strong>le</strong> fichier tab<strong>le</strong>1.txt :53.5 16074.4 17252.6 15188.6 16349.2 169Ces données sont ac<strong>ce</strong>ssib<strong>le</strong>s grâ<strong>ce</strong> à la ligne <strong>de</strong> comman<strong>de</strong>s :>read.tab<strong>le</strong>("tab<strong>le</strong>1.txt")R affiche alors <strong>le</strong> tab<strong>le</strong>au <strong>de</strong> données en numérotant <strong>le</strong>s lignes et <strong>le</strong>s colonnes, <strong>le</strong>s lignes correspondant aux individuset <strong>le</strong>s colonnes aux variab<strong>le</strong>s. R affiche un message d’avertissement con<strong>ce</strong>rnant <strong>le</strong> nom <strong>de</strong>s variab<strong>le</strong>s.Vous pouvez éga<strong>le</strong>ment conserver la tab<strong>le</strong> comme un objet pour pouvoir la réutiliser directement :>tab


et <strong>de</strong>man<strong>de</strong>r l’affichage <strong>de</strong> <strong>ce</strong>t objet :>tabou seu<strong>le</strong>ment d’une colonne <strong>de</strong> <strong>ce</strong>t objet :>tab$V1ou seu<strong>le</strong>ment <strong>de</strong> l’élément <strong>de</strong> la première ligne et <strong>de</strong> la première colonne :>tab[1,c(1)]ou>tab[1,1]ou <strong>le</strong>s éléments <strong>de</strong>s <strong>de</strong>ux premières lignes et <strong>de</strong> la première colonne :>tab[1 :2,1]ou <strong>le</strong>s éléments <strong>de</strong>s <strong>de</strong>ux premières lignes et <strong>de</strong>s <strong>de</strong>ux premières colonnes :>tab[1 :2,1 :2]Pour travail<strong>le</strong>r ensuite sur <strong>le</strong>s variab<strong>le</strong>s <strong>de</strong> la tab<strong>le</strong>, vous pouvez <strong>le</strong>ur attribuer un nom (plus simp<strong>le</strong> <strong>que</strong> la syntaxeutilisée) :>V1V2 read.tab<strong>le</strong>("tab<strong>le</strong>2.txt",hea<strong>de</strong>r=T)Par défaut R lit la première ligne comme une ligne <strong>de</strong> données et nomme <strong>le</strong>s colonnes sous la forme V1,V2,...(commepour tab<strong>le</strong>1.txt).Par défaut un point (.) est utilisé pour <strong>le</strong>s décima<strong>le</strong>s. Mais si <strong>le</strong>s décima<strong>le</strong>s sont notée par une virgu<strong>le</strong> dans votrefichier <strong>de</strong> données (comme dans tab<strong>le</strong>3.txt), il faut <strong>le</strong> spécifier par :>read.tab<strong>le</strong>("tab<strong>le</strong>3.txt",<strong>de</strong>c=",")Par défaut un espa<strong>ce</strong> est utilisé pour séparer <strong>le</strong>s va<strong>le</strong>urs appartenant à différentes colonnes. Mais si <strong>le</strong>s colonnessont séparées par un point virgu<strong>le</strong> dans votre fichier <strong>de</strong> données (comme dans tab<strong>le</strong>4.txt), il faut <strong>le</strong> spécifier par :>read.tab<strong>le</strong>("tab<strong>le</strong>4.txt",sep=",")Pour ouvrir un fichier <strong>de</strong> données sans avoir à indi<strong>que</strong>r son empla<strong>ce</strong>ment en utilisant une boîte <strong>de</strong> dialogue convivia<strong>le</strong>:>read.tab<strong>le</strong>(fi<strong>le</strong>.choose())Enfin la plupart <strong>de</strong>s formats <strong>de</strong> fichiers sont connus par R.Travaillons par exemp<strong>le</strong> avec <strong>le</strong>s fichiers csv. Il en existe <strong>de</strong>ux types :• anglo-saxon avec un « . » comme séparateur décimal et une « , » comme séparateur <strong>de</strong> colonne et,• français avec un « , » comme séparateur décimal et une « , » comme séparateur <strong>de</strong> colonne.Le premier se lit avec l’instruction>read.csv(fi<strong>le</strong>.choose())8/9

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!