TP R : Introduction. être recopiés dans ce fichier (grâce à un copier-coller).



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

Introduction à MATLAB R

Les concepts de base, l organisation des données

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

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

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

TP 1. Prise en main du langage Python

Initiation à LabView : Les exemples d applications :

Cours 7 : Utilisation de modules sous python

Calcul Formel et Numérique, Partie I

R01 Import de données

Gestion des données avec R

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

STAGE IREM 0- Premiers pas en Python

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Présentation du langage et premières fonctions

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

Algorithmique et Programmation, IMA

Initiation à la programmation en Python

LES TYPES DE DONNÉES DU LANGAGE PASCAL


TP 1 Prise en main de l environnement Unix

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

INTRODUCTION AU LOGICIEL R

Présentation du logiciel

Initiation à l analyse en composantes principales

TP1 : Initiation à l algorithmique (1 séance)

Aide - mémoire gnuplot 4.0

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

R00 Installation du logiciel R sous Windows

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

TP 1 Introduction à Matlab Février 2009

Algorithmique et programmation : les bases (VBA) Corrigé

Calcul Formel et Numérique, Partie I

Bases de programmation. Cours 5. Structurer les données

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Jérôme Mathieu janvier Débuter avec R. Ce document est disponible sur le site web :

Initiation au logiciel R

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

TP1 - Prise en main de l environnement Unix.

Le langage C. Séance n 4

Maple: premiers calculs et premières applications

Python - introduction à la programmation et calcul scientifique

Introduction à la programmation en R. Vincent Goulet

Programmation Web. Madalina Croitoru IUT Montpellier

Utilisation d objets : String et ArrayList

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

1 Complément sur la projection du nuage des individus

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

TP, première séquence d exercices.

Programmation C. Apprendre à développer des programmes simples dans le langage C

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

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

Tutoriel Création d une source Cydia et compilation des packages sous Linux

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

Introduction à l informatique en BCPST

3.2. Matlab/Simulink Généralités

Une introduction au langage R

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Lire ; Compter ; Tester... avec R

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version /11/05

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

La mémoire. Un ordinateur. L'octet. Le bit

Rappels sur les suites - Algorithme

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

Premiers pas avec SES-Pegase (version 7.0) SES : Un Système Expert pour l analyse Statistique des données. Premiers pas avec SES-Pegase 1

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

L informatique en BCPST

Introduction à la présentation graphique avec xmgrace

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Créer et modifier un fichier d'import des coordonnées approximatives avec Excel

Premiers pas avec Mathematica

DOCM Solutions officielles = n 2 10.

1 Recherche en table par balayage

EXCEL TUTORIEL 2012/2013

Chapitre 4 : Édition de fichiers texte - Vi

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

Découverte du tableur CellSheet

Mises en relief. Information supplémentaire relative au sujet traité. Souligne un point important à ne pas négliger.

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

Note de cours. Introduction à Excel 2007

Opérations de base sur ImageJ

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

TP : Gestion d une image au format PGM

TD de supervision. J.P. Chemla. Polytech Tours Département productique 2ème année

RECOPLUS LOGICIEL DE GESTION DES RECOMMANDES NOTICE D UTILISATION DE RECOPLUS RESEAU. N de série

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

1. Structure d'un programme FORTRAN 95

Créer vos données sources avec OpenOffice, adieu Excel

Organiser le disque dur Dossiers Fichiers

Corrigé des TD 1 à 5

CAPTURE DES PROFESSIONNELS

Statistiques à une variable

Recherche dans un tableau

MÉTHODES NUMERIQUES. Cours. Licence de Physique Année Universitaire : Licence Chimie, parcours Physique. Semestre S3

LiveUSB clefisn. Meilland jean claude et Kbida Abdellatif. 16 septembre 2012

Traitement des données avec Microsoft EXCEL 2010

Outils pour la pratique

Transcription:

M2 IFMA et MPE TP R : Introduction Avant de commencer le TP, créez un répertoire consacré à cette séance de Tps R. À la fin de la séance vous déposerez vos scripts R dans la boîte de dépôt de votre espace Sakai : http://australe.upmc.fr/ portal. Documentation : pour une bonne introduction au logiciel R, nous recommandons l ouvrage Le logiciel R de Lafaye de Micheaux et al. Springer 2011, dont une version électronique (32Mo) est disponible pour les étudiants de l UPMC en cliquant sur le lien ci-dessus. 1 Lancement du logiciel R Le logiciel R est un logiciel d étude statistique, il s agit d un logiciel libre, vous pouvez le télécharger et l installer sur une machine personnelle. Le logiciel est disponible sur la plateforme du CRAN (Comprehensive R Archive Network), un réseau mondial de sites qui stockent les différentes versions, les mises à jour, les bibliothèques et la documentation. Lancement du logiciel R à l UTES Plusieurs machines virtuelles (et systèmes d exploitation) sont disponibles à l UTES, ils permettent tous d utiliser le logiciel R. Vous pourrez donc utiliser l OS de votre choix. Bureau de Lutes (Windows) : Dans le menu affiché sur le bureau : Pédagogie Mathématiques 1. Ouvrir le logiciel R. Le symbole > apparaît indiquant que R est prêt. 2. Créer un nouveau script TP1.R. Le logiciel ne gardant pas automatiquement la trace des opérations effectuées dans la console, tous les codes que vous tapez et que vous voulez sauvegarder doivent être recopiés dans ce fichier (grâce à un copier-coller). Mathématiques et Mathematica (Win X Pro) : cette machine virtuelle dispose de l environnement R studio. Linux 1. Dans Outils, ouvrir un terminal. Dans ce terminal, ouvrir le logiciel R : tapez R, puis appuyez sur la touche Entrée. Le symbole > apparaît indiquant que R est prêt. 2. Dans Outils, ouvrir un deuxième terminal. Dans ce terminal taper : kwrite TP1.R & pour créer un fichier script TP1.R. Le logiciel ne gardant pas automatiquement la trace des opérations effectuées dans la console, tous les codes que vous tapez et que vous voulez sauvegarder doivent être recopiés dans ce fichier (grâce à un copier-coller). Quelques rappels si vous travaillez sous Linux : pwd : pour afficher l adresse du répertoire courant cd adresse-rep : pour aller dans le répertoire dont d adresse est adresse-rep cd.. : pour aller dans le répertoire père du répertoire courant mkdir nom-rep : pour créer un répertoire de nom nom-rep kwrite nom-fichier & : pour créer un fichier de nom nom-fichier Le & sert à ne pas perdre la main. Si vous l oubliez, pour récupérer la main, taper Ctrl-Z puis bg. ls : pour avoir la liste des fichiers contenus dans le répertoire courant rm fichier : pour détruire fichier 1

Quitter R. Pour quitter R, (suivant l OS choisi), vous pouvez utilisez le menu déroulant R, ou utilisez la commande q(). R pose alors la question : Save workspace image? [y/n/c]. Si vous répondez y, R sauvegarde tous les objets créés au cours de la session. Si vous répondez n, ces objets sont perdus. Pour continuer la session, il faut répondre par la lettre c. Lignes de commandes La fenêtre de commandes du logiciel R permet de soumettre des instructions les unes à la suite des autres. Une instruction (ou commande) est une ligne de code précédée du prompteur : > Une ligne de commandes Une ligne de commandes peut définir des objets R, demander des informations sur un objet, définir une fonction, utiliser une fonction R prédéfinie dans le logiciel etc. Le symbole <- ou = est utilisé pour définir un objet (voir plus bas). Il est possible de soumettre plusieurs commandes séparées par le symbole ; sur une même ligne. Une même commande peut s écrire sur plusieurs lignes, auquel cas R matérialise le début de la 2ème ligne d instructions par le symbole +. Il est possible d insérer des commentaires dans le programme en les faisant précéder du caractère # : # ceci est un commentaire Fonctions R courantes Nous donnons ci-dessous une liste des fonctions R couramment utilisées pendant un session : getwd() permet de connaître le répertoire dans lequel on travaille. setwd( chemin du répertoire ) pour se placer dans un répertoire source("script.r") exécute un fichier script. save(monobjet,file="monobjet.rdata") permet de sauver l objet monobjet sous le format R. Il est aussi possible de sauver plusieurs objets dans le même fichier. Par exemple : save(objet1,objet2,file="mesobjets.rdata"). load("mesobjets.rdata") permet de recharger des objets sauvegardés au cours d une session précédente. ls() permet de lister les object créés. rm(x) efface l objet x. rm(list = ls()) efface tous les objets de la session en cours. La fonction data pour charger des données : data(iris) 2 L aide du logiciel R Le logiciel R possède un système d aide efficace. Par exemple, pour afficher la page d aide de la fonction var, on utilise la commande suivante : > help(var) On peut aussi utiliser la commande? suivi du nom de la fonction. Suivant l OS utilisé, R ouvre une fenêtre avec les informations relatives à la fonction demandée, ou affiche les informations à la suite dans la console. 3 Les données sous R R permet de manipuler des données organisées en structures de différentes formes (vecteurs, tableaux, listes etc). Toutes ces structures sont composées d éléments de base, ces derniers pouvant être de différents types (numériques, logique etc.). Pour accéder au type d un élément de base, on peut utiliser la fonction typeof. Pour connaître la classe de la structure d un objet R, on peut utiliser la fonction class. 2

3.1 Types d objets Type numérique. Le logiciel distingue deux types numériques : le type integer pour les entiers et le type double pour les réels. Il est possible de changer le type d un élément numérique avec les fonction as.integer et as.double. > a <- 1 > typeof(a) [1] "double" > is.integer(a) [1] FALSE > b <- as.integer(a) > is.integer(b) [1] TRUE R représente correctement les valeurs infinies avec Inf et -Inf : > 1/0 [1] Inf Les formes indéterminées sont représentées avec NaN : > 0/0 [1] NaN Type complexe. Le logiciel R permet de manipuler les nombres complexes avec le type complex, grâce à la lettre i et aux fonctions Re et Im. Type booléen. Le type logical, résultat d une condition logique, peut prendre les valeurs TRUE (ou T) et FALSE (ou F). Voici quelques instructions mettant en oeuvre des valeurs logiques : > c <- (1 > 2) > typeof(c) [1] "logical" > d <- (c * 4) > d [1] 0 > is.logical(d) [1] FALSE Type chaîne de caractères. character. > e <- "upmc" > typeof(e) Un élément entre guillemets est de type chaîne de caractères : type [1] "character" > as.character(1.4) [1] "1.4" 3

Données manquantes. En statistique, certaines données sont parfois manquantes. L instruction NA (non available) indique que la donnée correspondante n est pas disponible. > is.na(3) [1] FALSE > is.na(na) [1] TRUE 3.2 Vecteurs Les vecteurs sont la forme de structure la plus simple, elle représente une suite d éléments de même type. L opérateur c() permet de concaténer des valeurs. > x <- c(2, 6, 5, 8, 1, 3, 9) > char <- c("a","c","d") Pour afficher le vecteur : > x [1] 2 6 5 8 1 3 9 > x1 <- c(10, 11, 1.2) > x2 <- c(x, x1) > x2 [1] 2.0 6.0 5.0 8.0 1.0 3.0 9.0 10.0 11.0 1.2 Pour connaître la longueur d un vecteur : > length(x) [1] 7 On peut créer des vecteurs particuliers grâce à des suites régulières : > 5:12 [1] 5 6 7 8 9 10 11 12 > 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 > rep(1:3, each = 2) [1] 1 1 2 2 3 3 La fonction seq peut générer des suites régulières de nombres de deux manières différentes : soit en lui spécifiant, le début, la fin, puis le pas (argument by) > seq(from = 1, to = 5, by = 0.5) 4

[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 soit en lui spécifiant le début, la fin et le nombre d éléments (argument length) > 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 parler du type d un vecteur car tous les éléments qui le constituent sont de même nature. On peut calculer ou tester le type d un vecteur comme suit : > typeof(char) [1] "character" > is.numeric(char) [1] FALSE On accède aux éléments d un vecteur avec les crochets []. Quels sont les résultats des commandes suivantes? > x[2] > x[c(2,4)] > x[-1] 3.3 Matrices On définit une matrice à l aide de la fonction matrix. Les options ncol et nrow permettent de définir les dimensions de la matrice. > M <- matrix(0, nrow = 2, ncol = 3) > M [,1] [,2] [,3] [1,] 0 0 0 [2,] 0 0 0 > M <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 2, ncol = 3) > M [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 Il existe une option byrow=true qui permet de rentrer les valeurs par lignes et non par colonnes. > M <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 2, ncol = 3, byrow = TRUE) > M [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 Pour connaître les dimensions d une matrice, on utilise la fonction dim (la fonction length retourne le nombre d éléments de la matrice) : > dim(m) 5

[1] 2 3 > length(m) [1] 6 On a la possibilité d attribuer des noms aux lignes et aux colonnes d une matrice via l option dimnames (ces noms doivent être de type character). On peut aussi rajouter des lignes (fonction rbind) ou des colonnes (fonction cbind) à une matrice existante (voire concaténer des matrices). Voici un exemple : > cbind(m, c(7, 7)) [,1] [,2] [,3] [,4] [1,] 1 2 3 7 [2,] 4 5 6 7 > rbind(m, c(8, 8, 8)) [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 [3,] 8 8 8 > cbind(m, M) [,1] [,2] [,3] [,4] [,5] [,6] [1,] 1 2 3 1 2 3 [2,] 4 5 6 4 5 6 Exercice 1. 1. Définissez la matrice A = 4 5 6 4 5 6 4 5 6 2. Définissez la matrice B en concaténant sous la matrice A la ligne (4, 5, 6). 3. Calculez la dimension de B. Exercice 2. On accède aussi aux éléments d une matrice avec les crochets []. Quels sont les résultats des commandes suivantes? > M[1,3] > M[,1] > M[2,] > M[2,c(1,3)] Les matrices sont des objets structurés de classe matrix. Comme pour les vecteurs, les matrices sont composées d éléments de même type : > class(m) [1] "matrix" > typeof(m) [1] "numeric" > is.character(m) [1] FALSE 6

3.4 Listes Une liste est une collection d objets non nécessairement de même type. On peut créer une liste via la fonction list en définissant les éléments un à un : > L1 <- list(x2,m,"blabla") > class(l1) [1] "list" > L1 [[1]] [1] 2.0 6.0 5.0 8.0 1.0 3.0 9.0 10.0 11.0 1.2 [[2]] [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 [[3]] [1] "blabla" On peut ainsi accéder aux éléments de la liste en utilisant les crochets : que donne la commande suivante? > L1[[2]] Il est souvent plus agréable de donner un nom aux différents objets que contient la liste : > L2 <- list(vecteurdel2=x2, ChaineDeL2 = "blablaba") > L2 $VecteurDeL2 [1] 2.0 6.0 5.0 8.0 1.0 3.0 9.0 10.0 11.0 1.2 $ChaineDeL2 [1] "blablaba" Il est alors aussi possible d accéder aux éléments de la liste en utilisant ces noms prédéfinis : que donne la commande suivante? > L2$VecteurDeL2 Exercice 3. 1. Définissez le vecteur A = [1,4,5], la matrice Mat de taille 3 4 composée uniquement de 1, et la liste l1 composée des deux éléments précédents. 2. Définissez la liste L composée des trois éléments A, Mat et l1, donnez des noms à ces trois éléments de la liste. Une liste est typiquement obtenue en sortie d une fonction R. Par exemple, la fonction eigen fournit le résultat de la diagonalisation d une matrice carrée sous la forme d une liste. Exercice 4. En vous appuyant sur l aide de R de la fonction eigen, déterminez le vecteur propre associé à la plus grande valeur propre de la matrice 1 4 7 Mat = 2 5 8. 3 6 9 7

3.5 Tableaux Un tableau (dataframe) est une liste de vecteurs de même longueur. Le tableau est l objet de référence en statistique car il permet renseigner les valeurs prises par des variables (disposées en colonnes) sur une collection d individus (disposés en lignes). On peut créer un tableau de données en utilisant la fonction data.frame. Par exemple : > var1<-c("a","b","a","fi","jk") > var2<-c(5,8,9,1,3) > tab<-data.frame(var1,var2) > class(tab) [1] "data.frame" > is.list(tab) [1] TRUE > is.data.frame(tab) [1] TRUE > tab var1 var2 1 a 5 2 b 8 3 a 9 4 fi 1 5 jk 3 Un tableau conserve le nom des vecteurs, dans notre cas var1 et var2. Il est possible de donner des noms aux lignes avec l option row.names qui doit fournir un vecteur de type caractère et de longueur égale au nombre de lignes du tableau de données. Par exemple : > var1<-c("a","b","a","fi","jk") > var2<-c(0.25,0.35,0.15,0.25,0.3) > tab<-data.frame(taba = var1,tabb = var2,row.names= c("paul","pierre","alain","olivier","bernard")) > tab taba tabb Paul a 0.25 Pierre b 0.35 Alain a 0.15 Olivier fi 0.25 Bernard jk 0.30 Un tableau étant par définition une liste particulière, il est possible d accèder aux éléments d un tableau avec les doubles crochets [[]], ou avec le $ en utilisant les noms de colonnes. Vérifiez-le sur les commandes : > tab[,1] > tab$tabb La commande attach permet d utiliser les noms des variables du tableau sans rappeler le tableau auxquelles elles appartiennent : 8

> tabb Erreur : objet 'tabb' introuvable > attach(tab) > tabb [1] 0.25 0.35 0.15 0.25 0.30 Importer les données d un fichier externe dans un tableau R La fonction read.table permet de lire et d importer sous R des données provenant d un fichier texte (ASCII). Cette instruction s utilise comme suit : > MesDonnees <- read.table(file= chemin vers le fichier, header = TRUE, sep = "\t", row.names = ) L option header = indique si le fichier contient le nom des variables sur la première ligne. Le type de séparateur est indiqué par l option sep =, par défaut il s agit de la tabulation. L option dec ="." indique le séparateur décimal (virgule ou point). L option row.names = permet de renseigner le nom des lignes à l aide d un vecteur de chaînes de caractères. Il est aussi possible d indiquer un numéro de colonne si ces noms sont présents dans le fichier. Exercice 5. Téléchargez le fichier cathedral.txt et importez les données sous la forme d un tableau que vous nommerez Cat. Ce fichier décrit les dimensions de cathédrales anglaises. La première colonne indique le nom de la cathédrale, la seconde renseigne s il s agit d une cathédrale gothique ou romane, les deux dernières colonnes donnent les dimensions de celle-ci. Vous utiliserez comme nom de ligne le nom de la cathédrale. Il est possible d importer sous R des données enregistrées dans un fichier Excel grâce à des fonctions spécifiques comme par exemple la fonction read.xls du package gdata. Une solution souvent plus simple consiste à enregistrer la feuille Excel dans un fichier au format ASCII (.txt ou.csv) que l on pourra ensuite importer dans un dataframe avec la fonction read.table. 3.6 Facteurs La structure factor permet de manipuler les variables catégorielles plus facilement qu avec des vecteurs de caractères, notamment grâce à l utilisation des fonctions factor et levels. > x <- factor(c("bleu","vert","rouge","bleu","vert")) > x [1] bleu vert rouge bleu vert Levels: bleu rouge vert > levels(x) [1] "bleu" "rouge" "vert" > class(x) [1] "factor" Un tableau peut contenir des objets de la classe facteur. Par exemple, dans le tableau tab défini précédemment, la variable taba est reconnue automatiquement comme un facteur : > class(taba) [1] "factor" 9

Notez qu objet facteur est de type entier, même si celui-ci a été construit à partir d un vecteur de chaines de caractères : > typeof(var1) [1] "character" > typeof(tab$taba) [1] "integer" > typeof(cat$style) [1] "integer" 4 Opérateurs opérateurs arithmétiques : +, -, *, /, ^... Étudiez les commandes suivantes : > x= -10:10 > y<-1:10 > x^2 > x+y > x*y Opérateurs de comparaison : ==, <, >, <=, >=,!=... Étudiez les commandes suivantes : > x= -10:10 > x==0 > x>0 > x[x>0] > x[x>=0] Testez si les composantes de x sont égales aux composantes de y : > x<- c(seq(2,9,by=2),11) > y<- 2 * (1:5) Exercice 6. (D après l ouvrage Le logiciel R cité plus haut, p.9). Récupérer le fichier Intimamedia.xls à l adresse www. biostatisticien. eu/ springer/ Intima_ Media. xls. 1. Importer les données dans un dataframe que vous nommerez Intima. 2. Rajouter une colonne IMC contenant l indice de masse corporel de chaque individu dans Intima. On rappelle que Poids (kg) IMC = Masse(m) 2. 3. Récupérer la mesure de l intima (variable mesure) pour les personnes ayant un IMC>30. 4. Extraire les femmes sportives. 5. Extraire les non-obèses chez les personnes âgées de 50 ans ou plus (obèse=imc>30). Calcul matriciel : M%*%N : produit de deux matrices, t(m) : transposée de M, solve(m) : matrice inverse de M solve(a,b) : résout le système linéaire Ax = b, Exercice 7. Calculer les produits de matrices : BA, AB, AB où A et B sont définies dans l exercice 1. 10

5 Fonctions R 5.1 Fonctions R prédéfinies Il existe un nombre très important de fonctions pour manipuler des données. Outre les fonctions mathématiques de base du type log, exp, cos, abs, sqrt (racine carrée), floor (partie entière)... en voici quelques-unes assez courantes : sum(x), prod(x) : somme, produit des éléments de x, min(x), max(x) : minimum, maximum des éléments de x, which.min(x), which.max(x) : indice du min, max des éléments de x, sort(x) : trie les éléments de x dans l ordre croissant, Exercice 8. Que vaut sum(a)? Calculer la somme de la première colonne de A. Calculez le maximum de la deuxième ligne de A. Exercice 9. 1. Que fait la fonction choose (utilisez l aide)? 2. On considère > x<-choose(6,0:6) Calculez la somme des élements de x, le maximum, et l indice du maximum. 3. Ordonner x dans l ordre croissant. 5.2 Librairies D autres fonctions spécifiques existent dans des bibliothèques R qui ne sont pas chargées par défaut. Pour charger une librairie particulière, on utilise la commande library. Par exemple, les fonctions de classification développées par Rousseeuw et ses collaborateurs sont contenues dans la bibliothèque cluster. Pour les utiliser, il faut donc appeler cette bibliothèque : > library(cluster) Si la bibliothèque appelée n est pas chargée sur votre machine, R retourne un message d erreur. Pour installer un nouveau package, taper sous R : install.packages("nom_package") Exercice 10. Installer sur votre machine la bibliothèque vcd. 5.3 Écrire ses propres fonctions R Il est possible d écrire ses propres fonctions R. La structure générale d une fonction est la suivante : Mafonction <- function(arg1,arg2,...) { suite de commandes sortie =... return(sortie) } Notez que plusieurs objets peuvent être donnés en argument alors qu un seul objet est renvoyé en sortie. Ceci ne pose pas de problème car il est toujours possible de disposer tous les éléments à renvoyer dans une même liste. Exercice 11. Ecrire une fonction R qui prend en argument deux réels x et y ainsi qu une matrice N, et qui renvoie : la quantité z = x + y, l entier nomb de coefficients de N qui sont dans l intervalle [x, y], La matrice Ntilde dont les coefficients (i, j) sont égaux à x si i et j sont pairs et à N(i, j) sinon. 11

Exercice 12. Écrire une fonction ma.variance qui calcule l estimateur de la variance défini par : 1 n 1 n (x i x) 2 où x = 1 n i=1 n i=1 x i pour un vecteur x = (x 1,..., x n ) donné en argument. Comparez avec la fonction prédéfinie var. Boucles et tests. Le langage R autorise à manipuler des tests et les boucles for, while. Boucle test : les instructions sont effectuées si la condition est vérifiée. if (condition) {instructions} else {instructions} Boucle for : les instructions sont effectuées pour tous les i du vecteur. for (i in vecteur) {instructions} Voici un exemple élémentaire utilisant une boucle for : > x <- rep(c(1,2),5) > for (i in 1:4) > { if (x[i] == 1) > x[i] <- 5 > } > x [1] 5 2 5 2 1 2 1 2 1 2 Boucle while : les instructions sont effectuées tant que la condition est réalisée. while (condition) {instructions} Voici un exemple élémentaire utilisant une boucle for : > a <- 2 > while (a < 100) > {a <- a^2 } > a [1] 256 Exercice 13. 1. Ecrire la fonction compte qui prend deux arguments : sequence (un vecteur de caractères) et lettre (un caractère), et qui retourne le nombre d occurrences de lettre dans sequence. Appliquer cette fonction pour trouver le nombre d occurrences de la lettre a dans la séquence biologique : sequence<-c("a","a","t","g","a","g","c","t","a","g","c","t","g") 2. Uiliser une boucle for pour obtenir la composition en (a,c,g,t) de la séquence biologique. 6 Fonctions graphiques élémentaires L une des fonctions principales pour représenter graphiquement des données est la fonction plot(). Par exemple, pour tracer la densité de la loi normale standard N (0, 1), commençons par crée un vecteur x contenant les points où sera évaluée la densité : > x <- seq(-5,5,by=0.1) La fonction dnorm() évalue la fonction de densité d une loi normale standard : 12

> y <- dnorm(x) Pour afficher les points avec des cordonnées x et y, on utilise la fonction plot() : > plot(x,y) Par défaut, plot() affiche un nuage de points. Les nombreuses options de la fonction plot() permettent de modifier le graphique. On obtient, par exemple, une courbe avec l option type= l pour relier les points par une ligne : > plot(x,y, type='l') D autres options du graphique : xlab et ylab pour modifier le nom des axes main pour rajouter un titre pch pour jouer sur la forme des points : pch=0 pour des carreaux, pch=1 pour des cercles (par défaut), pch=2 pour des triangles etc. lty pour jouer sur le type de ligne : par défaut lty=1 donne des lignes continues, mais on peut obtenir des tirets (lty=2), des pointillés (lty=3)... lwd pour jouer sur l épaisseur des lignes col spécifie la couleur (p.ex. col= green ou col=3 pour des points/lignes verts) xlim et ylim pour fixer la limite inférieure et supérieure des axes (p.ex. xlim=c(-3,5)) Tout appel de plot() efface le graphique précédent. Pour ajouter un nuage de point ou une courbe à un graphique existant : points(x,y,...) : ajoute un nuage de points lines(x,y,...) : ajoute une nouvelle courbe abline(a,b,...) : ajoute une droite avec ordonnée à l origine a et pente b Les 3 points... symbolisent ici des options graphiques qui peuvent être spécifiées. Exercice 14. Ajouter la densité d une loi normale N (2, 0.8) au graphique de la densité N (0, 1). Représenter la densité de N (2, 0.8) par une courbe pointillée rouge. Utiliser les commandes xlim et ylim pour obtenir une représentation convenable des deux densités. Consulter l aide de la fonction legend() pour créer une légende pour ce graphique. Pour tracer plusieurs graphiques dans une même fenêtre, on utilise par(mfrow=c(n,m)), où n est le nombre de graphiques par ligne, et m le nombre de graphiques par colonne. Exemple : Pour tracer 6 graphiques en une seule fenêtre, réparties sur deux lignes : > par(mfrow=c(2,3)) # pour diviser la fen^etre en 6 parties > plot(x1,y1) # tracer le 1e graphique > plot(x2,y2) # tracer le 2e graphique... y1 0.0 0.2 0.4 0.6 0.8 1.0 y2 0.05 0.10 0.15 0.20 y3 0.0 0.1 0.2 0.3 0.4 0.5 0 2 4 6 8 10 x1 0 2 4 6 8 10 x2 0 2 4 6 8 10 x3 fdr1 0.0 0.2 0.4 0.6 0.8 1.0 fdr2 0.0 0.2 0.4 0.6 0.8 fdr3 0.0 0.2 0.4 0.6 0.8 1.0 0 2 4 6 8 10 x1 0 2 4 6 8 10 x2 0 2 4 6 8 10 x3 Exercice 15. Tracer les deux densités de l exercice précédent côte à côte dans une même fenêtre. Ajouter un titre à chaque graphique et veiller à ce que l échelle des axes soit la même pour les deux graphiques. 13

Exercice 16. Proposer des représentations graphiques adéquates pour les données suivantes : 1. la hauteur et la longueur des cathédrales (fichier cathedral.txt) 2. la hauteur, la longueur et le type de cathédrales (fichier cathedral.txt) 3. les données de temperature de 15 villes françaises (fichiers temperatures.txt et Villes.txt) Pour créer une nouvelle fenêtre graphique vide, taper la commande figure() sous Window, X11() sous Linux et quartz() sous Mac. Pour sauvegarder une figure dans un fichier pdf on pourra utiliser les commandes pdf() et dev.off() : > pdf(file="graphique.pdf") > plot(x,y) > dev.off() 14