Fonctions R. Pascal Bessonneau, Christophe Pallier 16 janvier 2010



Documents pareils
Introduction aux Statistiques et à l utilisation du logiciel R

Lire ; Compter ; Tester... avec R

Introduction à la statistique non paramétrique

Exercices M1 SES Ana Fermin ( fermin.perso.math.cnrs.fr/ ) 14 Avril 2015

Introduction à R. Florence Yerly. Dept. de mathématiques, Université de Fribourg (CH) SP 2011

Exemples d Analyses de Variance avec R

Cours 1. I- Généralités sur R II- Les fonctions de R et autres objets III-Les vecteurs

distribution quelconque Signe 1 échantillon non Wilcoxon gaussienne distribution symétrique Student gaussienne position

Annexe commune aux séries ES, L et S : boîtes et quantiles

Densité de population et ingestion de nourriture chez un insecte vecteur de la maladie de Chagas

TP de Statistiques: Utilisation du logiciel R

Aide-mémoire de statistique appliquée à la biologie

INTRODUCTION À L'ENVIRONNEMENT DE PROGRAMMATION STATISTIQUE R

Gestion des données avec R

R01 Import de données

Statistiques. Rappels de cours et travaux dirigés. Master 1 Biologie et technologie du végétal. Année

Logiciel XLSTAT version rue Damrémont PARIS

Une introduction. Lionel RIOU FRANÇA. Septembre 2008

SEMIN. Données sous R : stockage et échange. Julio PEDRAZA ACOSTA

INTRODUCTION AU LOGICIEL R

Analyse de la variance Comparaison de plusieurs moyennes

TABLE DES MATIERES. C Exercices complémentaires 42

Package TestsFaciles

Séance 0 : Linux + Octave : le compromis idéal

1 Introduction - Qu est-ce que le logiciel R?

Didacticiel - Études de cas. Description de quelques fonctions du logiciel PSPP, comparaison des résultats avec ceux de Tanagra, R et OpenStat.

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Introduction à l approche bootstrap

Loi binomiale Lois normales

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Introduction à MATLAB R

Tests statistiques et régressions logistiques sous R, avec prise en compte des plans d échantillonnage complexes

Analyse exploratoire des données

La problématique des tests. Cours V. 7 mars Comment quantifier la performance d un test? Hypothèses simples et composites

Une introduction au langage R

Un exemple de régression logistique sous

Fiche d utilisation du logiciel. 1 - Installation. J. Thioulouse & D. Chessel

Traitement des données avec Microsoft EXCEL 2010

TABLE DES MATIÈRES. Bruxelles, De Boeck, 2011, 736 p.

Analyse discriminante et régression logistique: application au cas de l innovation pour les entreprises du Canton du Tessin

Tests paramétriques de comparaison de 2 moyennes Exercices commentés José LABARERE

Les concepts de base, l organisation des données

Cours 7 : Utilisation de modules sous python

Relation entre deux variables : estimation de la corrélation linéaire

Gestion obligataire passive

1. Vocabulaire : Introduction au tableau élémentaire

Statistiques Descriptives à une dimension

Installation. Notes de Cours sur le logiciel R. Plan. Au démarrage

Rappels sur les suites - Algorithme

Présentation du logiciel

Chapitre 3. Les distributions à deux variables

Statistique : Résumé de cours et méthodes

Analyses de Variance à un ou plusieurs facteurs Régressions Analyse de Covariance Modèles Linéaires Généralisés

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

1 Recherche en table par balayage

Modèles pour données répétées

Chapitre 3 : Principe des tests statistiques d hypothèse. José LABARERE

SINE QUA NON. Découverte et Prise en main du logiciel Utilisation de bases

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

2010 Minitab, Inc. Tous droits réservés. Version Minitab, le logo Minitab, Quality Companion by Minitab et Quality Trainer by Minitab sont des

Maple: premiers calculs et premières applications

TSTI 2D CH X : Exemples de lois à densité 1

MODELE A CORRECTION D ERREUR ET APPLICATIONS

IBM SPSS Statistics Base 20

données en connaissance et en actions?

Présentation du langage et premières fonctions

VI. Tests non paramétriques sur un échantillon

CAPTEURS - CHAINES DE MESURES

UFR de Sciences Economiques Année TESTS PARAMÉTRIQUES

L informatique en BCPST

Guide d utilisation commandes des pièces de rechange Rev.1.0.3

Introduction à l analyse des statistiques des données : travaux pratiques avec le logiciel R.

FORMULAIRE DE STATISTIQUES

TP 1. Prise en main du langage Python

Table des matières. I Mise à niveau 11. Préface

Étude des flux d individus et des modalités de recrutement chez Formica rufa


Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Biostatistiques Biologie- Vétérinaire FUNDP Eric Depiereux, Benoît DeHertogh, Grégoire Vincke

Statistique Descriptive Élémentaire

Biostatistiques : Petits effectifs

Données longitudinales et modèles de survie

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Utilisation du Logiciel de statistique SPSS 8.0

BIRT (Business Intelligence and Reporting Tools)

NOTE SUR LA MODELISATION DU RISQUE D INFLATION

Évaluation de la régression bornée

Leslie REGAD ; Gaëlle LELANDAIS. leslie.regad@univ- paris- diderot.fr ; gaelle.lelandais@univ- paris- diderot.fr

Première session de travail

Analyse de variance à deux facteurs (plan inter-sujets à deux facteurs) TP9

STAGE IREM 0- Premiers pas en Python

Travaux pratiques avec RapidMiner

INF6304 Interfaces Intelligentes

La classification automatique de données quantitatives

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

Représentation d un entier en base b

DÉRIVÉES. I Nombre dérivé - Tangente. Exercice 01 (voir réponses et correction) ( voir animation )

Initiation à l analyse en composantes principales

Transcription:

Fonctions R Pascal Bessonneau, Christophe Pallier 16 janvier 2010 1 Recherche de l aide sur R La recherche s effectue sur 4 niveaux sur R. 1.1 help Le premier niveau consiste à rechercher de l aide sur une fonction précise. Il faut donc connaître exactement le nom de la fonction. Cette recherche a un autre inconvénient. Elle nécessite que la fonction soit en mémoire. Si cette fonction se trouve dans un paquet il faut avoir chargé ce paquet en mémoire. La récompense est une documentation riche qui détaille (en théorie) l ensemble du comportement de la fonction. La syntaxe permettant d accéder à cette aide est (fonction) ou fonction. La réalité est plus triviale... Trois complications principales : En effet la documentation renseigne rarement le comportement des objets S3 et S4. Un exemple sera plus parlant : par exemple l aide de la fonction plot n indique pas le fait qu on peut plotter un objet de la classe lm. En fait il taper?plot.lm. Il faut connaître donc l existence de la fonction plot.lm d où le fait qu il est important de connaître la syntaxe methods(class= lm ). Les fonctions ne sont pas très détaillées. Par exemple les détails théoriques ne sont généralement pas abordés contrairement à certains autres logiciels. Certains élements ne sont pas abordés. C est notamment le cas quand la fonction invisible est utilisé. Un exemple tout simple est la fonction boxplot. Les valeurs renvoyées dans une variable à gauche de la fonction boxplot ne sont décrites nulle part. 1.2 help.search Cette fonction permet une recherche plus large. En effet on peut chercher des fonctions par des mots-clefs. Par exemple si on tape ( Student ) on trouve les fonctions dont le nom et la description contient le mot Student. Il est à noter que la recherche est casse indépendante : les mêmes résultats sont trouvés si on tape Student, student, student,... 1

Cette fonction ne permet que de chercher parmi les documentations des fonctions dans les paquets installés sur l ordinateur. La présentation des résultats varie en fonction des plateformes. Sous Mac OS X le nom des fonctions et des paquets sont clairement indiqués. Sous Linux et sous Windows, le nom de la fonction est préfixé par le nom du paquet : paquet : :fonction. 1.3 Le site de R et les vignettes Sur le site de R, on trouve de multiples sources d informations. Les premières sont les différents tutoriaux, les questions fréquentes,... disponibles à cette adresse : http://www.r-project.org/. Les autres informations sont sur la page des packages qui permet de trouver des fonctions à partir des descriptions : http://cran.cict.fr/. Pour tous les paquets la documentation sous format PDF est disponible en suivant les liens. Pour certains paquets il y a des vignettes qui sont des formes plus conviviales, sous forme de tutoriaux, des documentations des fonctions. Enfin il existe des vues. Ce sont des ensembles de paquets qui portent tous sur le même domaine : sciences sociales, design expériementaux, écologie,... Ces listes de paquets sont maintenus par des gens du domaine et les paquets fournis sont d une grande qualité. Ils sont disponibles à cette adresse : http: //cran.cict.fr/web/views/. 1.4 Rseek et les newsgroups Le niveau suivant pour trouver des informations est d utiliser les moteurs de recherche. Un moteur de recherche qui ne cherchent que dans les pages qui concernent R existe à cet adresse : http://www.rseek.org/. Ce moteur cherche également dans les newsgroup qui sont très riches en renseignements. La souscription aux newsgroup se fait sur cette page : http://www.r-project. org/mail.html. Certaines mailings lists concernent des domaines particuliers comme pour les vues. Sans s abonner les archives des newsgroup sont disponibles là : https:// stat.ethz.ch/mailman/listinfo. 2 Fonctions de base 2.1 aggregate La fonction permet de calculer une statistique sur une variable qualitatives pour des sous échantillons défini par une ou plusieurs variables qualitatives. Avec une variable qualitative la valeur retournée est un vecteur. Avec deux une data.frame... Pour spécifier les variables qualitatives on passe par une liste : > aggregate(iris$sepal.length,list(species=iris$species,random=gl(2,75)), mean ) 2

Species Random x 1 setosa 1 5.006 2 versicolor 1 6.012 3 versicolor 2 5.860 4 virginica 2 6.588 2.2 apply La fonction permet de réaliser très rapidement des calculs sur des data.frames. La fonction prend comme argument : le nom de la data.frame le sens dans lequel est appliqué la fonction : 1 par ligne, 2 par colonne et c(1,2) cellule par cellule. le nom ou la fonction à appliquer. La fonction ne doit rendre qu une valeur unique On peut après ces trois arguments donné des arguments pour la fonction. > apply(iris[,1:4],1,mean,na.rm=t) [1] 2.550 2.375 2.350 2.350 2.550 2.850 2.425 2.525 2.225 2.400 2.700 2.500 [13] 2.325 2.125 2.800 3.000 2.750 2.575 2.875 2.675 2.675 2.675 2.350 2.650 [25] 2.575 2.450 2.600 2.600 2.550 2.425 2.425 2.675 2.725 2.825 2.425 2.400 [37] 2.625 2.500 2.225 2.550 2.525 2.100 2.275 2.675 2.800 2.375 2.675 2.350 [49] 2.675 2.475 4.075 3.900 4.100 3.275 3.850 3.575 3.975 2.900 3.850 3.300 [61] 2.875 3.650 3.300 3.775 3.350 3.900 3.650 3.400 3.600 3.275 3.925 3.550 [73] 3.800 3.700 3.725 3.850 3.950 4.100 3.725 3.200 3.200 3.150 3.400 3.850 [85] 3.600 3.875 4.000 3.575 3.500 3.325 3.425 3.775 3.400 2.900 3.450 3.525 [97] 3.525 3.675 2.925 3.475 4.525 3.875 4.525 4.150 4.375 4.825 3.400 4.575 [109] 4.200 4.850 4.200 4.075 4.350 3.800 4.025 4.300 4.200 5.100 4.875 3.675 [121] 4.525 3.825 4.800 3.925 4.450 4.550 3.900 3.950 4.225 4.400 4.550 5.025 [133] 4.250 3.925 3.925 4.775 4.425 4.200 3.900 4.375 4.450 4.350 3.875 4.550 [145] 4.550 4.300 3.925 4.175 4.325 3.950 > a=matrix(1,ncol=4,nrow=4) > apply(a,c(1,2),runif) [,1] [,2] [,3] [,4] [1,] 0.5345462 0.6512564 0.4040241 0.57482026 [2,] 0.8252818 0.9135901 0.3880125 0.84972805 [3,] 0.8192938 0.1084089 0.8817233 0.89168510 [4,] 0.6101705 0.1195152 0.6360943 0.07337666 2.3 attach La fonction permet de ne pas avoir à préfixer les noms des colonnes d une data.frame par le nom de la data.frame. La fonction with est plus interessante car les variables ne sont accessibles que pendant l exécution d une expression. 3

> attach(iris) > mean(sepal.length) [1] 5.843333 > detach(iris) 2.4 by La fonction permet d appliquer une fonction pour chaque sous ensemble défini par une variable qualitative. Elle est différente des fonctions des autres fonctions d aggrégation. En effet alors qu on obtient un objet pour les autres fonctions d aggrégation, cette fonction est destinée à afficher du texte seulement. > by( iris, iris$species, summary ) iris$species: setosa Sepal.Length Sepal.Width Petal.Length Petal.Width Min. :4.300 Min. :2.300 Min. :1.000 Min. :0.100 1st Qu.:4.800 1st Qu.:3.200 1st Qu.:1.400 1st Qu.:0.200 Median :5.000 Median :3.400 Median :1.500 Median :0.200 Mean :5.006 Mean :3.428 Mean :1.462 Mean :0.246 3rd Qu.:5.200 3rd Qu.:3.675 3rd Qu.:1.575 3rd Qu.:0.300 Max. :5.800 Max. :4.400 Max. :1.900 Max. :0.600 Species setosa :50 versicolor: 0 virginica : 0 ------------------------------------------------------------ iris$species: versicolor Sepal.Length Sepal.Width Petal.Length Petal.Width Species Min. :4.900 Min. :2.000 Min. :3.00 Min. :1.000 setosa : 0 1st Qu.:5.600 1st Qu.:2.525 1st Qu.:4.00 1st Qu.:1.200 versicolor:50 Median :5.900 Median :2.800 Median :4.35 Median :1.300 virginica : 0 Mean :5.936 Mean :2.770 Mean :4.26 Mean :1.326 3rd Qu.:6.300 3rd Qu.:3.000 3rd Qu.:4.60 3rd Qu.:1.500 Max. :7.000 Max. :3.400 Max. :5.10 Max. :1.800 ------------------------------------------------------------ iris$species: virginica Sepal.Length Sepal.Width Petal.Length Petal.Width Min. :4.900 Min. :2.200 Min. :4.500 Min. :1.400 1st Qu.:6.225 1st Qu.:2.800 1st Qu.:5.100 1st Qu.:1.800 Median :6.500 Median :3.000 Median :5.550 Median :2.000 4

Mean :6.588 Mean :2.974 Mean :5.552 Mean :2.026 3rd Qu.:6.900 3rd Qu.:3.175 3rd Qu.:5.875 3rd Qu.:2.300 Max. :7.900 Max. :3.800 Max. :6.900 Max. :2.500 Species setosa : 0 versicolor: 0 virginica :50 2.5 colnames La fonction colnames permet de nommer les colonnes d une matrice ou d un data.frame. Inversement elle renvoie les noms affectés aux colonnes. > colnames(iris) [1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Species" > colnames(iris) <- c( "P.L", "P.W", "S.L", "S.W", "S" ) > str(iris) 'data.frame': 150 obs. of 5 variables: $ P.L: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9... $ P.W: num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1... $ S.L: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5... $ S.W: num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1... $ S : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1... 2.6 data La fonction permet d accéder à des datasets exemple qui font partie de R ou qui sont fournis avec les paquets que l on installe au fur et à mesure. Si on tape data() permet d avoir la liste des datasets disponibles. Pour le charger en mémoire il suffit d appeler data(nomdudataset). 2.7 detach La fonction permet de supprimer de l environnement une data.frame accessible après l appel de attach. > attach(iris) > mean(sepal.length) [1] 5.843333 > detach(iris) 5

2.8 dim La fonction permet de connaitre la taille d une data.frame. Elle renvoie un vecteur de longueur 2 avec en premier le nombre de lignes et en second le nombre de colonnes. Lorsque l objet n est pas de dimension 2 alors la valeur renvoyée est NULL. 2.9 Fonctions mathématiques La liste des commandes mathématiques les plus courantes sont : : prend le log en base 1. : prend le log en base 10, et : cosinus, sinus et tangente. : factoriel d un nombre. : prend la racine carrée d un nombre 2.10 Fonctions génériques is.object et as.object Les fonctions génériques is.object et as.object permettent de faire des tests et des conversions explicites. La commande,,... font des conversions explicites. Certains comme sont l équivalent de la fonction utilisée pour créer l objet. D autres plus complexes sont des conversions implémentées au niveau du langage S3 et S4. Les commandes,,... sont des fonctions renvoyant vrai si l objet est effectivement du type précisé. 2.11 gl La fonction permet de créer une variable de type factor. Les arguments sont les suivants : le premier argument est le nombre de modalités le deuxième est le nombre d élements pour chaque modalité Si on utilise comme argument length alors R replique les modalités de façon à les répartir de fonction homogène dans un vecteur de taille length. > gl(2,4) [1] 1 1 1 1 2 2 2 2 Levels: 1 2 > gl(3,3,length=18) [1] 1 1 1 2 2 2 3 3 3 1 1 1 2 2 2 3 3 3 Levels: 1 2 3 6

2.12 head La fonction permet de lister les 6 premières lignes d une data.frame. Cela permet d avoir un aperçu du contenu. Le nombre de lignes affichées peut être modifié à l aide de l argument n=nblignes. On peut omettre de mettre n= et spécifier directement le nombre de lignes. La fonction fait l inverse et donne les n dernières lignes. Exemple : > head(iris,3) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 2.13 ifelse Cette fonction permet de faire un test et de renvoyer une valeur définie en fonction du résultat du test. Le premier argument est une expression renvoyant vrai ou faux et le second argument est la valeur à renvoyer quand l expression est vrai. Enfin le troisième argument donne la valeur à renvoyer si l expression est fausse. > ifelse( c(2,6,4,7,9)%%2 == 0, "Vrai", "Faux" ) [1] "Vrai" "Vrai" "Vrai" "Faux" "Faux" 2.14 is.na La fonction permet de tester si une ou plusieurs valeurs sont NA. En effet on ne peut pas comparer directement une valeur avec NA. Le résultat est toujours NA. Il faut donc passer par le biais de cette fonction tester la présence dans un vecteur de NA. > is.na( c(3,na,4,5) ) [1] FALSE TRUE FALSE FALSE 2.15 is.null La fonction permet de tester si une ou plusieurs valeurs, un objet ou toute autre expression est NULL. Par exemple cette fonction est utilisée pour tester si un objet existe. > is.null(iris$quelquechose) [1] TRUE > is.null( c( 3, NULL, 4, 5 ) ) [1] FALSE 7

2.16 q La fonction permet de quitter R. Si on passe comme argument yes alors l environnement est sauvegardé. Si no alors l environnement n est pas sauvegardé. 2.17 ls La fonction permet de faire la liste des objets en mémoire. 2.18 length La fonction est plus complexe qu il n y parait. Mais on l utilisera dans ce cours que pour deux choses : Pour connaitre la longueur d un vecteur. Pour connaître le nombre d élements d une liste. > length(c(3,4,5)) [1] 3 > length(list(a=1,b=2)) [1] 2 2.19 names La fonction permet de définir ou de retourner les noms d un vecteur. > tmp <- c( 1, 2, 3 ) > names(tmp) <- c( "A", "B", "C" ) > tmp A B C 1 2 3 > names(tmp) [1] "A" "B" "C" 2.20 ncol La fonction renvoie le nombre de colonnes d une matrice ou d une data.frame. 2.21 nrow La fonction renvoie le nombre de lignes d une matrice ou d une data.frame. 8

2.22 order La fonction renvoie les indices i d un vecteur tel que le vecteur[i] est ordonné dans l ordre croissant. L option la plus courante est decreasing=t pour renvoyer dans l ordre décroissant. La fonction order renvoie donc des indices qui correspondent aux positions dans le vecteur. La fonction ne doit pas être confondue avec sort qui elle renvoie les valeurs contenues dans le vecteur ordonnées. > head(iris[order(iris$sepal.length),]) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 14 4.3 3.0 1.1 0.1 setosa 9 4.4 2.9 1.4 0.2 setosa 39 4.4 3.0 1.3 0.2 setosa 43 4.4 3.2 1.3 0.2 setosa 42 4.5 2.3 1.3 0.3 setosa 4 4.6 3.1 1.5 0.2 setosa 2.23 rep La fonction permet de créer un vecteur en répétant une valeur quelconque n fois. > rep(na,3) [1] NA NA NA > rep(2,5) [1] 2 2 2 2 2 > rep("c",4) [1] "C" "C" "C" "C" 2.24 read.table La fonction permet de lire un fichier texte et renvoie une data.frame. Le fichier texte doit être un fichier avec des séparateurs : c est-à-dire que chaque champ est séparé par un caractère spécial et il y a un enregistrement par ligne. Le premier argument obligatoire est le nom du fichier. Les options à connaître sont les suivantes : header=t. Dans ce cas le nom des colonnes se trouve en tête de fichier (1ère ligne lue). skip : nombre de lignes à ignorer en tête du fichier 9

sep : le séparateur entre chaque champ. dec : séparateur de décimales na.strings : c est un vecteur qui indique quelles valeurs considérées comme NA dans le fichier. La fonction read.table a plusieurs en fonction des paramètres par défaut. Nom sep dec header read.table espace. Faux read.delim tabulation. Vrai read.delim2 tabulation, Vrai read.csv ;. Vrai read.csv2 ;, Vrai Tab. 1: Alias de la fonction read.table Les fonctions write.table, write.delim, write.csv,... permettent d écrire des fichiers CSVs au format décris précedemment. 2.25 replicate La fonction permet de répéter une opération n fois. Pour ça on précise en premier argument le nombre de répétitions en premier argument l expression à executer en deuxième argument. > replicate( 5, rnorm(1) ) [1] -0.01635355 1.40710938 0.60827277 0.85290451-0.84759572 > replicate( 5, rnorm(6) ) [,1] [,2] [,3] [,4] [,5] [1,] 1.2325243-0.3294468-2.3549723-0.7360672-0.3473790 [2,] 0.5097965 0.2059532 1.0668757 0.2125429 1.3651598 [3,] -0.3111776-0.2926103 0.5760924-2.4854121 0.6997872 [4,] 0.1623883 3.9847496-0.1946061 1.5373629 0.6477236 [5,] -1.8548755 1.4044215 0.8384502 1.0529836-0.1630458 [6,] -0.8235092 0.4092443-0.5297559 0.2166759-0.2195514 2.26 rownames La fonction permet de définir ou de retourner les noms attribués aux observations (à chaque ligne). > rownames(iris)[1:5] [1] "1" "2" "3" "4" "5" 10

> rownames(iris) <- paste( "A", 1:nrow(iris) ) > rownames(iris)[1:5] [1] "A 1" "A 2" "A 3" "A 4" "A 5" 2.27 rm La fonction permet de supprimer un objet en mémoire. Son utilisation est très simple puis qu il suffit de donner le nom de l objet en argument. > a <- 5 > rm(a) 2.28 sample La fonction permet de tirer aléatoirement un échantillon. il renvoie des valeurs tirés au hasard dans un vecteur qui est le premier argument. Le deuxième argument est le nombre d élements à tirer dans le vecteur. L argument permet d indiquer si le tirage se fait sans (FALSE)ou avec remise (TRUE). > iris[sample(1:nrow(iris),5),] Sepal.Length Sepal.Width Petal.Length Petal.Width Species A 95 5.6 2.7 4.2 1.3 versicolor A 2 4.9 3.0 1.4 0.2 setosa A 147 6.3 2.5 5.0 1.9 virginica A 33 5.2 4.1 1.5 0.1 setosa A 24 5.1 3.3 1.7 0.5 setosa > table(sample(c(true,false),1000,replace=t)) FALSE TRUE 509 491 2.29 scan La fonction permet de lire un fichier. Par défaut il lit un fichier avec des séparateurs. Cette fonction peut lire une plus grande diversité de fichier mais elle est de plus bas niveau que read.table et demande plus de paramètres à l utilisateur. 2.30 seq La fonction permet de créer des suites de nombre. Les arguments sont les suivantes : le minimum de la suite. 11

le maximum de la suite le pas entre deux valeurs. si le troisième argument est nommé length.out R génère un vecteur de longueur donné. > seq(-1,1,0.5) [1] -1.0-0.5 0.0 0.5 1.0 > seq(1,5,length.out=5) [1] 1 2 3 4 5 2.31 source La fonction permet d executer un script R contenu dans un fichier texte. En premier argument la fonction prend le nom du fichier texte. En second argument on peut spécifier si l execution se fait sans affichage echo=f ou avec avec echo=t. 2.32 sort La fonction renvoie les valeurs contenues dans un vecteur dans l ordre croissant. Comme option on a decreasing=t qui renvoie le vecteur dans l ordre décroissant. > sort(rnorm(5)) [1] -1.59607565-0.22649530-0.21912079-0.03207857 0.59148094 2.33 sum La fonction permet de sommer tous les élements d un vecteur. Dans le cas où il y a une valeur NA alors la somme est NA. Pour éviter cela il faut préciser na.rm=t. > sum(1:5,na.rm=t) [1] 15 2.34 str La fonction renvoit la structure d un objet. Par exemple sur une data.frame il renvoie les différentes colonnes ainsi que leur type. > str(iris) 12

'data.frame': 150 obs. of 5 variables: $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9... $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1... $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5... $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1... $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1... Cette fonction est précieuse dans le cas d objet plus complexe. Il permet de contourner l affichage de l objet par les fonctions dédiées et de donner les différentes variables contenu dans l objet. Cela est plus simple à comprendre par un exemple. > t <- t.test( rnorm(1000), rnorm(1000,2) ) > t Welch Two Sample t-test data: rnorm(1000) and rnorm(1000, 2) t = -45.2045, df = 1994.284, p-value < 2.2e-16 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -2.118372-1.942208 sample estimates: mean of x mean of y -0.01867047 2.01161965 > str(t) List of 9 $ statistic : Named num -45.2..- attr(*, "names")= chr "t" $ parameter : Named num 1994..- attr(*, "names")= chr "df" $ p.value : num 8.41e-308 $ conf.int : atomic [1:2] -2.12-1.94..- attr(*, "conf.level")= num 0.95 $ estimate : Named num [1:2] -0.0187 2.0116..- attr(*, "names")= chr [1:2] "mean of x" "mean of y" $ null.value : Named num 0..- attr(*, "names")= chr "difference in means" $ alternative: chr "two.sided" $ method : chr "Welch Two Sample t-test" $ data.name : chr "rnorm(1000) and rnorm(1000, 2)" - attr(*, "class")= chr "htest" 2.35 table La fonction permet de faire des tables de contingence. Par table de contingence on entend des tableaux indiquant le nombre de modalités dans l échan- 13

tillon d une ou plusieurs variables qualitatives. Pour croiser plusieurs variables, il suffit de les ajouter dans l appel de la fonction. L objet retourné est de type table. Il peut être converti en data.frame à l aide de la fonction as.data.frame. On peut aussi garder la structure de la table en forçant la classe du résultat. > tmp <- table( gl( 2, 15 ), gl( 3, 10 ) ) > as.data.frame(tmp) Var1 Var2 Freq 1 1 1 10 2 2 1 0 3 1 2 5 4 2 2 5 5 1 3 0 6 2 3 10 > class(tmp) <- "matrix" > as.data.frame(tmp) 1 2 3 1 10 5 0 2 0 5 10 2.36 tapply tapply est une des fonctions permettant l aggrégation des données qu il faut connaître... Elle permet d appliquer et de retourner les résultats de l application d une fonction pour des sous ensembles définies par les modalités d une autre variable. La fonction retourne un vecteur. Elle prend en argument obligatoires : le vecteur pour lequel on veut les résultats le vecteur permettant de découper le vecteur initial qui doit être qualitatif (character ou factor). la fonction à appliquer au premier vecteur La fonction utilisée ne doit rendre qu un vecteur de longueur. Le résultat est vecteur de longueur égale à celle du nombre de modalité. Les noms des valeurs sont ceux des modalités. Par exemple : > tapply( iris$petal.length, iris$species, mean ) setosa versicolor virginica 1.462 4.260 5.552 14

2.37 with La fonction permet de ne pas avoir à préfixer le nom des variables par le nom de la data.frame pour une expression. Pour cela la fonction prend en argument obligatoires : premier argument : le nom de la data.frame deuxième argument : l expression dont on veut le résultat En théorie, on accède à la variable Petal.Length de la data.frame iris en tapant la commande : > mean(iris$petal.length) [1] 3.758 Avec with cela devient : > with( iris, mean(petal.length) ) [1] 3.758 3 Fonctions liées aux distributions statistiques Pour chaque distribution il existe une série de fonctions spécifiques. Elle sont préfixés par leur rôle : p<distribution> : Elle permet de récupérer la fonction de répartition. En entrée on donne la valeur x de l évènement en retour elle donne la probabilité que P (X x). d<distribution> : Elle correspond à la densité de la distribution. La densité est pour une distribution continue la dérivée de la fonction de répartition. Elle se comprend plus aisement pour une fonction discrète. Pour une fonction discrète elle pour x est P (X = x). Pour une fonction continue on peut la même analogie avec P (X = x + ɛ) avec ɛ infiniment proche de zéro. q<distribution> : Cette fonction donne le quantile. Le quantile est la fonction inverse de la fonction de répartition. Elle est à utiliser quand on dispose de la probabilité P (X x) et que l on veut la valeur de x correspondante. r<distribution> : elle permet de générer aléatoirement des nombres dans un échantillon dont la fonction de distribution est définie. Elle prend en premier argument le nombre de valeurs à calculer. Toutes les fonctions prennent comme arguments supplémentaires les paramètres des lois. Ces paramètres varient. Ils sont parfois obligatoires comme pour les degrés de liberté pour la loi de Student, Fisher,... Les fonctions p<distribution>, d<distribution> et q<distribution> ont la possibilité d absorber et de rendre un vecteur de même taille que l argument. Par exemple : 15

> # On demande la densité pour 5 valeurs > # et on récupère les 5 valeurs de densité. > dnorm( c(-2,-1,0,1,2) ) [1] 0.05399097 0.24197072 0.39894228 0.24197072 0.05399097 Les fonctions permettant la génération de données sont fondamentales. Elles prennent comme premier argument le nombre aléatoire qui l ont veut. > rnorm(10) [1] -1.5222169-1.3025571-1.3515261-0.6566950-0.0814097 0.8984162 [7] -0.8076827 0.2798823-0.6712079-1.3356662 3.1 Distribution normale Pour la distribution normale on a quatre fonctions associées :,, et. Leurs documentations est disponible par la commande?normal. Les arguments supplémentaires sont : mean : il permet de modifier la moyenne de la loi normale. sd : il permet de modifier l écart-type de la loi normale. Exemple : > normal <- rnorm(1000) > hist( normal, freq=f ) Histogram of student Density 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 4 2 0 2 4 6 student 16

> x <- seq(-6,6,0.1) > plot( x, dnorm( x, mean=-2, sd=2 ), type="l", col="red", ylim=c(0,1) ) > points( x, pnorm( x, mean=-2, sd=2 ), type="l", col="blue" ) > normal <- sort(runif(1000)) > points( qnorm( normal, mean=1, sd=2 ), normal, type="l", col="green" ) dt(x, 15) 0.0 0.2 0.4 0.6 0.8 1.0 6 4 2 0 2 4 6 x 3.2 Loi de Student La loi de Student dispose de quatre fonctions dédiées :,, et. Elle prend en second paramètre obligatoire le nombre de degrés de liberté. L aide sur ces fonctions est disponible via la commande?tdist. Exemple : > student <- rt(1000,10) > hist( student, freq=f ) 17

Histogram of student Density 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 4 2 0 2 4 6 student > x <- seq(-6,6,0.1) > plot( x, dt( x, 15 ), type="l", col="red", ylim=c(0,1) ) > points( x, pt( x, 15 ), type="l", col="blue" ) > student <- sort(runif(1000)) > points( qt( student, 1 ), student, type="l", col="green" ) 18

dt(x, 15) 0.0 0.2 0.4 0.6 0.8 1.0 6 4 2 0 2 4 6 x 3.3 Loi uniforme Les fonctions liées à la loi uniforme sont au nombre de 4 :,, et. La distribution normale est particulière car elle assume que la probabilité d évènement est constant sur un intervalle. Par défaut elle est définie sur l intervalle [0 ;1]. Sinon elle peut prendre deux arguments : min : le début de l intervalle de définition max : la fin de l intervalle de définition L aide est obtenue par la commande?uniform. > uniform <- runif(1000,min=10,max=100) > hist( uniform, freq=f ) 19

Histogram of uniform Density 0.000 0.002 0.004 0.006 0.008 0.010 0.012 20 40 60 80 100 uniform > x <- seq(0,15,0.1) > plot( x, dunif( x, min=0, max=15 ), type="l", col="red", ylim=c(0,1) ) > points( x, punif( x, min=0,max=15 ), type="l", col="blue" ) > uniform <- sort(runif(1000)) > points( qunif( uniform, min=2,max=10 ), uniform, type="l", col="green" ) 20

dunif(x, min = 0, max = 15) 0.0 0.2 0.4 0.6 0.8 1.0 0 5 10 15 x 4 Fonctions statistiques 4.1 aov La fonction permet de réaliser une analyse de la variance ou ANOVA. Le premier argument est une formule. Les arguments suivants ne seront pas vus. L objet créé est de type aov et est relativement complexe. Pour visualiser les résultats on peut afficher l objet créé ou utiliser la fonction summary. Pour les comparaisons paire à paire on peut utiliser la fonction TukeyHSD. > (a <- aov( Sepal.Length ~ Species, data=iris )) Call: aov(formula = Sepal.Length ~ Species, data = iris) Terms: Species Residuals Sum of Squares 63.21213 38.95620 Deg. of Freedom 2 147 21

Residual standard error: 0.5147894 Estimated effects may be unbalanced > summary(a) Df Sum Sq Mean Sq F value Pr(>F) Species 2 63.212 31.606 119.26 < 2.2e-16 *** Residuals 147 38.956 0.265 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 4.2 cor La fonction calcule le coefficient de corrélation de Bravais Pearson qui traduit l intensité d une relation linéaire entre deux variables quantitatives. il suffit de passer les deux variables en argument. Si des variables manquantes sont présentes par défaut la corrélation sera comme les variables manquantes c est à dire à NA. Pour calculer la corrélation il faut utiliser use= complete.obs ou use= na.or.complete. > cor(iris$sepal.length,iris$petal.length) [1] 0.8717538 4.3 cor.test La fonction permet de faire un test de nullité du coefficient de corrélation. L hyopthèse nulle est que la corrélation est nulle. On peut passer les deux échantillons en argument ou bien une fonction. > cor.test(iris$sepal.length,iris$petal.width) Pearson's product-moment correlation data: iris$sepal.length and iris$petal.width t = 17.2965, df = 148, p-value < 2.2e-16 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: 0.756897 0.864836 sample estimates: cor 0.8179411 4.4 binom.test La fonction permet de réaliser un test où l hypothèse nulle est une que la distribution est binomiale. 22

En premier il faut donner le nombre de succès et en deuxième le nombre d essais. La probabilité peut être donnée dans un troisième argument. L objet retourné est de classe htest. > binom.test( 10, 20, 0.5 ) Exact binomial test data: 10 and 20 number of successes = 10, number of trials = 20, p-value = 1 alternative hypothesis: true probability of success is not equal to 0.5 95 percent confidence interval: 0.2719578 0.7280422 sample estimates: probability of success 0.5 4.5 ks.test Cette fonction permet de réaliser des tests d adéquation entre deux échantillons ou un échantillon et une distribution théorique. Cette fonction n est pas à connaître car non vu en cours. Pour l utiliser il faut passer l échantillon en premier argument puis l autre échantillon ou une fonction donnant la fonction de répartition. > ks.test(rnorm(1000), pnorm) One-sample Kolmogorov-Smirnov test data: rnorm(1000) D = 0.024, p-value = 0.6115 alternative hypothesis: two-sided 4.6 quantile La fonction donne les quantiles du vecteur ou de la data.frame qui est passé en argument. Le deuxième argument, probs, indique à R quels quantiles utilisés. Les quantiles sont à indiquer en proportion. Par défaut les quantiles sont 0, 1 et 0.25. Dans le cas où il y a au moins une seule valeur NA alors la fonction renvoie NA. Pour modifier ce comportement et faire les calculs en excluant les NA il faut préciser l argument na.rm=true. > quantile(iris$petal.length,c(0,0.25,0.5,0.75,1)) 0% 25% 50% 75% 100% 1.00 1.60 4.35 5.10 6.90 23

4.7 lm La fonction est une abbréviation de linear models. Elle permet de réaliser une regression d une ou plusieurs variables sur une variable tierce. On utilise une formule pour définir le modèle. La fonction renvoie un objet de type lm. On peut l afficher et utiliser la summary. Des graphiques de diagnostic peuvent être obtenus en passant l objet à la fonction plot. > a = lm( Sepal.Length ~ Sepal.Width + Petal.Length + Petal.Width, data = iris ) > summary(a) Call: lm(formula = Sepal.Length ~ Sepal.Width + Petal.Length + Petal.Width, data = iris) Residuals: Min 1Q Median 3Q Max -0.82816-0.21989 0.01875 0.19709 0.84570 Coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) 1.85600 0.25078 7.401 9.85e-12 *** Sepal.Width 0.65084 0.06665 9.765 < 2e-16 *** Petal.Length 0.70913 0.05672 12.502 < 2e-16 *** Petal.Width -0.55648 0.12755-4.363 2.41e-05 *** --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 0.3145 on 146 degrees of freedom Multiple R-squared: 0.8586, Adjusted R-squared: 0.8557 F-statistic: 295.5 on 3 and 146 DF, p-value: < 2.2e-16 4.8 max La fonction donne la valeur maximale du vecteur ou de la data.frame qui est passé en argument. Dans le cas où il y a au moins une seule valeur NA alors la fonction renvoie NA. Pour modifier ce comportement et faire les calculs en excluant les NA il faut préciser l argument na.rm=true. 4.9 mean La fonction donne la moyenne des valeurs dans le vecteur ou la data.frame qui est passé en argument. 24

Dans le cas où il y a au moins une seule valeur NA alors la fonction renvoie NA. Pour modifier ce comportement et faire les calculs en excluant les NA il faut préciser l argument na.rm=true. 4.10 median La fonction donne la médiane (valeur pour lequel 50% des observations sont inférieurs à la valeur) du le vecteur ou de la data.frame qui est passé en argument. Dans le cas où il y a au moins une seule valeur NA alors la fonction renvoie NA. Pour modifier ce comportement et faire les calculs en excluant les NA il faut préciser l argument na.rm=true. 4.11 median La fonction donne la médiane (valeur pour lequel 50% des observations sont inférieurs à la valeur) du le vecteur ou de la data.frame qui est passé en argument. Dans le cas où il y a au moins une seule valeur NA alors la fonction renvoie NA. Pour modifier ce comportement et faire les calculs en excluant les NA il faut préciser l argument na.rm=true. 4.12 min La fonction donne la valeur minimale des valeurs dans le vecteur ou la data.frame qui est passé en argument. Dans le cas où il y a au moins une seule valeur NA alors la fonction renvoie NA. Pour modifier ce comportement et faire les calculs en excluant les NA il faut préciser l argument na.rm=true. 4.13 range La fonction donne dans un vecteur de taille 2 la valeur minimale puis la valeur maximale du vecteur ou de la data.frame qui est passé en argument. Dans le cas où il y a au moins une seule valeur NA alors la fonction renvoie NA. Pour modifier ce comportement et faire les calculs en excluant les NA il faut préciser l argument na.rm=true. 4.14 summary La fonction permet d obtenir rapidement un résumé des données. Il donne un résumé adapté au type de données qu on lui passe. Typiquement pour une data.frame il va faire un résumé pour chaque variable. Pour les variables facteurs et qualitatives il donne la fréquence des principales modalités et pour les variables quantitatives il donne les quantiles et la moyenne. Pour un objet d une autre classe que data.frame il est possible qu une fonction summary existe et renvoie un aperçu de l objet. C est notamment le cas pour les objets de classe lm et aov. 25

4.15 power.t.test La fonction est un des rares cas où la puissance d un test peut être estimée. En l occurence c est la puissance d un test de Student. Les arguments sont les suivants : n : nombre d observations dans les deux groupes delta : la différence entre les deux moyennes sig.level : l erreur de type I power : la puissance du test type : le type du test (moyenne contre valeur fixée, deux échantillons, appariés,...) alternative : two.sided ou one.sided > power.t.test(50,2) Two-sample t test power calculation n = 50 delta = 2 sd = 1 sig.level = 0.05 power = 1 alternative = two.sided NOTE: n is number in *each* group 4.16 prop.test La fonction prop.test permet de faire un test en comparant deux proportions. Il faut passer en premier et deuxième arguments un vecteur de longueur 2 indiquant les deux proportions observées : dans le premier vecteur les deux proportions chiffres observés et dans le vecteur 2 les deux chiffres maximums. > prop.test( c(10,20), c(100,100) ) 2-sample test for equality of proportions with continuity correction data: c(10, 20) out of c(100, 100) X-squared = 3.1765, df = 1, p-value = 0.0747 alternative hypothesis: two.sided 95 percent confidence interval: -0.2079982 0.0079982 sample estimates: prop 1 prop 2 0.1 0.2 26

4.17 shapiro.test Le test de Shapiro & Wilks n a été que survolé... C est un test posant comme hypothèse nulle que les données sont distribuées selon une loi normale. Il suffit de de passer l échantillon en premier argument. Les informations affichées sont retournées silencieusement dans un objet. > shapiro.test(rnorm(100)) Shapiro-Wilk normality test data: rnorm(100) W = 0.9918, p-value = 0.8054 > shapiro.test(rexp(100)) Shapiro-Wilk normality test data: rexp(100) W = 0.8687, p-value = 6.222e-08 4.18 t.test La fonction permet de réaliser un test de Student. Ce test permet la comparaison de la moyenne d un échantillon par rapport à une valeur théorique ou à un autre échantillon. Le test est robuste mais repose sur la normalité des distributions. Sous R par défaut est appliqué une correction qui suppose que les variances sont inégales. Si on souhaite faire le test pour des variances égales il faut préciser var.equal=t. Pour la comparaison par rapport à une valeur de référence on donne l échantillon comme premier argument et et on précise mu=<valeur>. Par défaut mu est égal à zéro. L intervalle de confiance se modifie avec l argument conf.level. Pour comparer deux échantillons on peut donner en premier et deuxième argument les deux échantillons. On peut aussi fournir une formule : > t.test( rnorm(1000), rnorm(1000,2) ) Welch Two Sample t-test data: rnorm(1000) and rnorm(1000, 2) t = -44.8758, df = 1995.788, p-value < 2.2e-16 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -2.079370-1.905235 sample estimates: mean of x mean of y 0.01573136 2.00803379 27

> a=gl(2,50) > b=c( rnorm(50), rnorm(50,2) ) > t.test( b~a ) Welch Two Sample t-test data: b by a t = -12.813, df = 94.343, p-value < 2.2e-16 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -2.515936-1.840835 sample estimates: mean in group 1 mean in group 2-0.02797235 2.15041326 La fonction renvoie silencieusement les valeurs affichées par la commande print. > str(t.test( b~a )) List of 9 $ statistic : Named num -12.8..- attr(*, "names")= chr "t" $ parameter : Named num 94.3..- attr(*, "names")= chr "df" $ p.value : num 2.28e-22 $ conf.int : atomic [1:2] -2.52-1.84..- attr(*, "conf.level")= num 0.95 $ estimate : Named num [1:2] -0.028 2.15..- attr(*, "names")= chr [1:2] "mean in group 1" "mean in group 2" $ null.value : Named num 0..- attr(*, "names")= chr "difference in means" $ alternative: chr "two.sided" $ method : chr "Welch Two Sample t-test" $ data.name : chr "b by a" - attr(*, "class")= chr "htest" 4.19 TukeyHSD La fonction permet de faire des comparaisons paire à paire dans une ANOVA en tenant compte des risques résultants des tests multiples. La fonction prend comme argument un objet de type aov. L objet retourné par cette fonction peut être passé à la fonction plot. > (a <- aov( Sepal.Length ~ Species, data=iris )) 28

Call: aov(formula = Sepal.Length ~ Species, data = iris) Terms: Species Residuals Sum of Squares 63.21213 38.95620 Deg. of Freedom 2 147 Residual standard error: 0.5147894 Estimated effects may be unbalanced > summary(a) Df Sum Sq Mean Sq F value Pr(>F) Species 2 63.212 31.606 119.26 < 2.2e-16 *** Residuals 147 38.956 0.265 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 > TukeyHSD(a) Tukey multiple comparisons of means 95% family-wise confidence level Fit: aov(formula = Sepal.Length ~ Species, data = iris) $Species diff lwr upr p adj versicolor-setosa 0.930 0.6862273 1.1737727 0 virginica-setosa 1.582 1.3382273 1.8257727 0 virginica-versicolor 0.652 0.4082273 0.8957727 0 > plot(tukeyhsd(a)) 5 Fonctions graphiques 5.1 barplot La fonction barplot a été peu abordée. En effet elle est surtout utile dans le cas de l étude des variables qualitatives. Elle trace un diagramme en batons : c est à dire des barres proportionnelles au valeurs définis. Contrairement à la fonction hist la fonction barplot ne réalise aucun calcul : la hauteur des barres et le nombre de barres dépend du vecteur passé en premier argument. Le premier argument peut être un tableau. Dans ce cas la hauteur par colonne est la somme marginale par colonne et chaque ligne correspond à une couleur. Typiquement elle permet de visualiser des tables de contingence. 29

> barplot( table(iris$species) ) 0 10 20 30 40 50 setosa versicolor virginica 5.2 boxplot La fonction permet de tracer un graphique en boite à moustaches. Ces graphiques permettent d apprécier graphiquement les quantiles associés à une variable quantitative. La fonction retourne silencieusement de nombreuses informations statistiques sur les variables. On peut utiliser des formules ce qui permet de tracer une boite à moustache par modalités d une variable qualitative ou une boite par colonne d une data.frame. > boxplot(iris$sepal.length~iris$species) 30

4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 setosa versicolor virginica > boxplot(iris[,1:4]) 31

0 2 4 6 8 Sepal.Length Sepal.Width Petal.Length Petal.Width 5.3 hist La fonction permet de tracer un histogramme. Un histogramme représente les effectifs ou la fréquence à laquelle apparait les valeurs comprises dans un intervalle. Le calcul des intervalles se fait par la fonction hist elle même. Elle renvoie ces informations lorsqu on affecte la fonction à une variable. Les paramètres facultatifs sont : freq : indique si l échelle est en effectif (TRUE par défaut) ou en proportions (FALSE). Pour superposer à une fonction density il faut utiliser l argument freq=false breaks : entier positif qui indique le nombre d intervalles à considérer. En pratique R ne découpe pas à plus de 25 intervalles. main : le titre du graphique. Exemple : > norm <- rnorm(1000) > hist(norm,freq=false) > lines(density(norm)) 32

5.4 identify La fonction permet de repérer les points atypiques par exemple en cliquant sur le graphique. On passe en argument les coordonnées en x, en y puis les étiquettes des points. Il suffit alors d activer le graphique et de cliquer sur les points interessants. L étiquette du point s affiche alors. > a <- qqnorm(iris$sepal.length) > qqline(iris$sepal.length) 5.5 interaction.plot La fonction permet d étudier l effet sur une estimation d une variable quantitative en fonction de deux variables qualitatives. En abscisse il y a les modalités d une variable qualitative et plusieurs courbes sont générées en fonction des modalités d une deuxième variable. En ordonnées on trouve les valeurs prises par la fonction de la valeur quantitative : le croisement des deux variables fournis des vecteurs qui passés à la fonction et qui renvoie une valeur. Les valeurs obtenus sont alors donnés. Les arguments sont les suivants : la première variable qualitative la deuxième variable qualitative la variable quantitative étudiée. une fonction qui réalise le calcul sur la variable quantitative. Un exemple type : > interaction.plot( + esoph$alcgp, + esoph$tobgp, + esoph$ncases/esoph$ncontrols, + mean + ) 33

mean of esoph$ncases/esoph$ncontrols 0.1 0.2 0.3 0.4 0.5 0.6 0.7 esoph$tobgp 30+ 10 19 0 9g/day 20 29 0 39g/day 40 79 80 119 120+ esoph$alcgp Dans une analyse il pourrait être intéressant d utiliser une autre fonction que la moyenne. Par exemple : > interaction.plot( + esoph$alcgp, + esoph$tobgp, + esoph$ncases/esoph$ncontrols, + sd + ) 5.6 lines La fonction permet de tracer une courbe passant par les points spécifiés avec comme premier argument les abscisses et en second les coordonnées. La fonction lines permet également de tracer des lignes à partir d objet tel que density. La fonction n est pas capable d initier un graphique. Il faut qu un graphique existe pour superposer la ligne. La fonction est complètement équivalente à la commande plot(...,type= l ) > plot( 0,0, xlim=c(-pi,pi), ylim=c(-1,1) ) > x <- seq(-pi,pi,0.01) > lines(x,sin(x)) 34

5.7 pairs La fonction permet de créer des graphiques de corrélation pour les variables quantitatives. Pour tous les couples de variable elle crée un graphique d une variable en fonction de l autre. Cela aboutit à un tableau de taille k par k avec k le nombre de variables. > pairs(iris[,1:4]) 5.8 par La fonction est relativement complexe. Elle permet de modifier les paramètres graphiques de la fenêtre créée. Son usage est dual. Si on tape par() on récupére les paramètres graphiques. Inversement si on passe un argument à la fonction par on peut modifier les paramètres. Les paramètres les plus utilisés dans le cadre de ce cours sont : no.readonly=t : permet de récupérer les paramètres que l utilisateur peut modifier. Cela permet de sauvegarder les paramètres par défaut avant de les modifier. mar : fixe les marges des graphiques. Il peut être utile de les modifier dans le cas où les étiquettes des axes sont trop grandes. mfrow : ce paramètre prend comme argument un vecteur de taille 2 donnant le nombre de graphiques que l on peut réaliser sur une même fenêtre. Le premier nombre donne le nombre de lignes et le deuxième le nombre de colonnes. mfcol : exactement l inverse de mfrow. > old.par <- par(no.readonly=t) > par(mar=c(10,4,4,2)) > par(mfrow=c(1,2)) > hist(iris$sepal.length) > hist(iris$petal.length) > par(old.par) 35

Histogram of iris$sepal.length Histogram of iris$petal.length Frequency 0 5 10 15 20 25 30 Frequency 0 10 20 30 4 5 6 7 8 iris$sepal.length 1 2 3 4 5 6 7 iris$petal.length 5.9 plot La fonction est une des plus longues et plus dures à expliquer. Cette fonction est une fonction générique c est-à-dire qu elle est capable de réaliser différentes opérations en fonction du type d objet en argument. Dans le premier cas de figure on ne passe qu un vecteur numérique. Dans ce cas, pour un vecteur a, c est équivalent à la fonction plot(1 :length(a),a). Dans le cas ou on passe deux arguments qui sont des vecteurs numériques alors la fonction utilise le premier pour les coordonnées sur l axe des x et le deuxième pour les coordonnées sur l axe des ordonnées : plot(x,y). On peut également passer une formule à la fonction. Typiquement la formule passée est plot( y x ). Dans ce cas on peut passer un argument supplémentaire data=truc pour dire à R que les variables x et ysont contenues dans la data.frame truc. Dans le cas où l on ne passe qu un argument et que l argument est d un type particulier de classe S3 ou S4 alors la fonction peut avoir un comportement particulier. Par exemple si on fait plot(reg) avec reg un objet de type lm alors on obtient les graphiques de diagnostic d une régression linéaire. On peut accéder à toutes les fonctions plot disponibles quand on tape la commande : methods(plot). Les arguments supplémentaires sont légions. On notera les plus importants : 36

xlim et ylim : ces arguments prennent comme argument un vecteur numérique de longueur deux. Le premier définit le minimum et le second le maximum. xlim pour l axe des abscisses et ylim pour l axe des ordonnées. type : permet de définir le type de graphiques. La valeur p pour des points, b pour des points et des lignes, l pour des lignes. D autres valeurs sont possibles. xlab et ylab : pour la légende d l axe des x et des y. main : pour le titre général du graphique. 5.10 points La fonction est en tout points identique à la fonction plot à une exception. Elle ne crée pas de nouveau graphique et superpose donc les points au graphique existant. 5.11 qqnorm La fonction permet de réaliser un graphique quantile-quantile de la loi normale. Cela permet de comparer la distribution par rapport à une loi normale de variance et de moyenne estimé sur l échantillon. Il suffit de passer l échantillon en premier argument. Silencieusement la fonction renvoie les coordonnées en x et y. Son utilisation avec la fonction qqline est presque systématique. > tmp <- rnorm(100) > qqnorm(tmp) > qqline(tmp) 5.12 qqline La fonction permet de tracer sur un graphique quantile-quantile la droite indiquant l équivalence entre les distributions. Pour une loi normale, on appele parfois cette droite droite de Henry. Il suffit de passer l échantillon en premier argument. > tmp <- rexp(100) > qqnorm(tmp) > qqline(tmp) 37

Index?, 1 aggregate, 2 aov, 21 apply, 3 as.character, 6 as.factor, 6 as.numeric, 6 attach, 3 binom.test, 22 boxplot, 30 by, 4 cor, 22 cor.test, 22 cos, 6 data, 5 detach, 5 dim, 6 dnorm, 16 dt, 17 dunif, 19 factorial, 6 gl, 6 head, 7 help, 1 help.search, 1 hist, 32 identify, 33 ifelse, 7 interaction.plot, 33 is.data.frame, 6 is.na, 7 is.null, 7 is.numeric, 6 ks.test, 23 length, 8 lines, 34 lm, 24 log, 6 log10, 6 ls, 8 max, 24 mean, 24 median, 25 min, 25 names, 8 ncol, 8 nrow, 8 order, 9 pairs, 35 par, 35 plot, 36 pnorm, 16 points, 37 power.t.test, 26 pt, 17 punif, 19 q, 8 qnorm, 16 qqline, 37 qqnorm, 37 qt, 17 quantile, 23 qunif, 19 range, 25 read.table, 9 rep, 9 replace, 11 replicate, 10 rm, 11 rnorm, 16 rownames, 10 rt, 17 runif, 19 38

sample, 11 scan, 11 seq, 11 sin, 6 sort, 12 source, 12 sqrt, 6 str, 12 sum, 12 summary, 25 t.test, 27 table, 13 tail, 7 tan, 6 TukeyHSD, 28 with, 15 39