Documents pareils
FPSTAT 2 í La dçecision statistique. 1. Introduction ça l'infçerence. 1

Quelques bases de donnçees d'çetoiles doubles et. Abstract. The increasing proportion of double stars makes necessary

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

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

Introduction à MATLAB R

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

Bernard HAMM, Évelyne LAVOISIER

Analyse exploratoire des données

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

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

STAGE IREM 0- Premiers pas en Python

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

WINDOWS NT 2000: Travaux Pratiques. -Boîtier partage d'imprimante- Michel Cabaré Janvier 2002 ver 1.0

Lire ; Compter ; Tester... avec R

L'instruction if permet d'exécuter des instructions différentes selon qu'une condition est vraie ou fausse. Sa forme de base est la suivante:

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

1. Introduction Création d'une requête...2

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

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

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

Cours 420-KEG-LG, Gestion de réseaux et support technique. Atelier No2 :

Cours Informatique Master STEP

Protocoles DHCP et DNS

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

IMPORTATION, CRÉATION, MANIPULATION, EXPORTATION DE DONNÉES STATISTIQUES

Traitement de texte : Quelques rappels de quelques notions de base

MDI Chèque de Allégroupe Réclamation

Présentation du logiciel

Introduction à la présentation graphique avec xmgrace

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

1 TD 2 : Construction d'une chier Acrobat et envoi par

Apprendre à manipuler le clavier Médiathèque de Bussy Saint-Georges APPRENDRE A MANIPULER LE CLAVIER

Parcours FOAD Formation EXCEL 2010

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Comment mettre en page votre livre

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Manuel du gestionnaire

Algorithmique et Programmation, IMA


Harp - Basculement des élèves en début d année

Programmation C++ (débutant)/instructions for, while et do...while

Initiation à la programmation en Python

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Comment faire des étiquettes

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

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

Initiation au logiciel R

Création d'une interface graphique

1. Structure d'un programme FORTRAN 95

INTRODUCTION AU LOGICIEL R

SOMMAIRE. Travailler avec les requêtes... 3

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

I. Introduction aux fonctions : les fonctions standards

TUTORIAL REUTERS. Utilisation de l'utilitaire de recherche Reuters

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

RÉALISATION DE GRAPHIQUES AVEC OPENOFFICE.ORG 2.3

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Cours Modélisation et Programmation avec tableur

Manuel d utilisation NETexcom

Notre projet est de réaliser un document


HMI target Visu / PLC HMI. Pour réaliser une interface homme machine avec PLC control

Note de cours. Introduction à Excel 2007

TP 1. Prise en main du langage Python

Initiation à l analyse en composantes principales

Guide de démarrage rapide

Algorithmique avec Algobox

Trier les ventes (sales order) avec Vtiger CRM

2 Grad Info Soir Langage C++ Juin Projet BANQUE

Utilisation d'un réseau avec IACA

Réaliser un PUBLIPOSTAGE

Créer une base de données

Manuel d utilisation de Gestion 6

Le Langage SQL version Oracle

LES TYPES DE DONNÉES DU LANGAGE PASCAL

MODE D'EMPLOI DE LA CALCULATRICE POUR LES COURTS SÉJOURS DANS L'ESPACE SCHENGEN

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

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE MINISTERE DE LA FORMATION PROFESSIONNELLE. Microsoft. Excel XP

TPS 4 Objectifs du programme aide à la lecture et à l'écriture Les fonctions principales lecture à haute voix

Initiation à la programmation OEF pour Wims (exercices).

Création de Sous-Formulaires

Java 7 Les fondamentaux du langage Java

TABLEAU CROISE DYNAMIQUE

LINUX REMPLAÇANT WINDOWS NT

Pluridisciplinarité. Classe de BTS DATR

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Stockage du fichier dans une table mysql:

Compléments de documentation Scilab : affichage de texte et formatage de nombres

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

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières

Cours Apl 11 - Introduction à la gestion des écrans

Chapitre 2 Devine mon nombre!

Transcription:

Guide sur l'utilisation du logiciel S-PLUS Normand Ranger CIRANO Centre Interuniversitaire de Recherche en ANalyse des Organisations 2020 rue University, 25e çetage Montrçeal, Quçe. H3A 2A5 æ Guide è 7-Version 1.0-18 novembre 1996 æ æ æ æ æ Ce document est disponible ça l'adresse suivante: http:èèwww.cirano.umontreal.caèpublicationèguidesèpage1.html æ æ

Table des matiçeres 1 Introduction 3 1.1 Version et commande d'appel.................................... 3 1.2 Prçeliminaires............................................. 3 1.3 Syntaxe................................................ 4 1.4 Remarques.............................................. 4 2 Objets S 5 2.1 Introduction.............................................. 5 2.2 Assignation.............................................. 5 2.3 Manipulations............................................. 5 2.4 Vecteur................................................ 6 2.5 Matrice et tableau.......................................... 7 2.6 Data frame.............................................. 8 2.7 Liste.................................................. 9 2.8 Fonction................................................ 9 2.8.1 Principes fondamentaux................................... 9 2.8.2 Ecrire ç ses propres fonctions................................. 10 2.8.3 Rçegles de construction d'une fonction........................... 10 2.9 Objets de type modçele........................................ 11 3 Quelques fonctions çelçementaires 13 3.1 Fonctions de manipulation...................................... 13 3.2 Fonctions de transformations numçeriques............................. 13 3.3 Fonctions d'aide........................................... 13 3.4 Fonctions graphiques......................................... 14 3.4.1 Introduction......................................... 14 3.4.2 Fen^etres graphiques et impression............................. 14 3.4.3 Fonctions graphiques de base................................ 15 3.4.4 Paramçetres graphiques èfonctionparèèè........................... 16 3.4.5 Famille des fonctions Trellis................................. 16 3.5 Fonctions statistiques........................................ 16 3.6 Fonctions utiles ça la programmation de ses propres fonctions.................. 17 3.7 Fonctions de manipulations de caractçeres............................. 19 3.8 Autres fonctions........................................... 20 3.9 Fonctions d'çedition.......................................... 20 4 Librairies locales 22 A Librairie locale au CIRANO B Librairie DSE C Librairie locale domouse I II III i

ii D Exemples IV

1 Avant-propos Ce petit guide n'a pas pour but de prçesenter tout le logiciel èlangage?è S-PLUS. Ce document ne prçesente qu'un nombre restreint de commandes et d'instructions. De plus, une certaine connaissance de UNIX pourra aider les utilisateurs de S-PLUS. Historique La version originale de S-PLUS s'appelait S et avait çetçe produite par AT&T Bell Laboratories. Par la suite, une version amçeliorçee fut commercialisçee sous le nom S-PLUS par la compagnie Statistical Sciences Inc. èstatsciè qui fut achetçee par le fournisseur actuel MathSoft. Manuels de rçefçerence, librairies de programmes publiques Le fabricant de S-PLUS fournit avec le logiciel une sçerie de livres de rçefçerence: S-PLUS User's Manual, S-PLUS Reference Manual, S-PLUS Gentle introduction, S-PLUS Crash Course, S-PLUS Programmer's Manual, S-PLUS Guide to Statistics and Mathematical Analysis, Treillis Graphics User's Manual, etc. De plus, plusieurs auteurs ont çecrit des livres sur S-PLUS ou sur un domaine scientiæque utilisant S-PLUS èex.: en statistique, graphismeè. Mentionnons en particulier ècette liste provient du site WWW de S-PLUS et date du 27 fçevrier 1996è: "An Introduction to S and S-Plus" by Phil Spector, Duxbury Press, Belmont, CA, 1994 "Statistical Models In S" by John Chambers and Trevor Hastie Chapman and Hall, 1992 "A Handbook of Statistical Analyses using S-PLUS" by Brian Everitt, Chapman & Hall, London, UK, 1994. "Modern Applied Statistics with S-PLUS" by William N. Venables and Brian D. Ripley, Springer, New York, NY, 1994 "Data analysis by using S" by M. Sibuya and R. Shibata "Graphics" by Richard A. Becker, John M. Chambers and Allan R. Wilks "Smoothing Techniques with Implementation in S" by W. Hardle, Springer, 1991 "Algorithms, Routines and S Functions for Robust Statistics" by A. Marazzi, Wadsworth & BrooksèCole, Pacific Grove, CA, 1992.

2 "Visualizing Data" by William S. Cleveland, Hobart Press, Summit, NJ, 1993. Notons que le site WWW du logiciel est: http:èèwww.mathsoft.comèsplus.html. Il existe aussi un site WWW èhttp:èèlib.stat.cmu.eduèsè qui oære des libraires de programmes S-PLUS produites par des usagers du logiciel. Sur ce m^eme site, certains autres guides d'usagers sont disponibles dont: "Une introduction ça S-Plus" Marcel Baumgartner èfrench.introè "Frequently Asked Questions about SèS-PLUS" by S. Gomatam and B. Narasimhan èfaqè "Cheatsheet: Simple Summaries of S Syntax and Expressions" by Barry Brown ècheatsheetè "Introductory Guide to S-Plus" by Brian Ripley èsguide.ps1, sguide.ps2è "Notes on S-PLUS" by William Venables and Dave Smith èsplusnotesè "Notes on S-PLUS èstudent editionè" by William Venables and Dave Smith Environnement Ce document traite de la version UNIX sous Solaris. Les versions sous d'autres environnements èdont Windowsè prçesentent certaines diæçerences, en particulier sous l'aspect graphique. Remarque et remerciements Ce guide est une nouvelle version d'un document produit antçerieurement: Mini-guide S et S-PLUS, Normand Ranger, Laboratoire de statistique-informatique, Dçept. d'informatique et de recherche opçerationnelle, Universitçe de Montrçeal, septembre 1993, version 3.0. L'auteur tient ça remercier Christian Lçeger et Michel Lamoureux du dçepartement de Mathçematiques et Statistique de l'universitçe de Montrçeal pour leurs commentaires lors de la rçevision du document mentionnçe ci-dessus. De plus, Christian Boudreau et Nancy Forget du m^eme dçepartement m'ont permis de plagier quelques paragraphes de leur documentation sur S-PLUS Amçeliorations Enæn, toutes erreurs, remarques, commentaires et suggestions quant au contenu etèou ça la prçesentation de ce document seront recueillis avec joie, amour et tendresse par l'auteur...

Chapitre 1 Introduction 1.1 Version et commande d'appel Version La version actuelle de S-PLUS sur BERGERAC est 3.4. Appel de S Il y a 2 façcons d'appeler S-PLUS: æ Interactive avec la commande: Splus æ En lot èbatchè: Splus BATCH æchier input æchier output oçu: æchier input contient les instructions S-PLUS ça exçecuter; æchier output contient les rçesultats des instructions S-PLUS exçecutçees. 1.2 Prçeliminaires Sous-rçepertoire de travail Notons que S-PLUS a besoin d'un sous-rçepertoire de travail nommçe obligatoirement.data. Si l'usager n'a pas de sous-rçepertoire.data dans le rçepertoire oçu il se trouve, S-PLUS en crçeera un ça moins qu'il en existe un dans le rçepertoire principal. On peut crçeer des sous-rçepertoires.data dans n'importe quel rçepertoire. S-PLUS est un logiciel orientçe sur le concept de manipulation d'objets et de fonctions. Il utilise son propre rçepertoire è.dataè qui contient tous les æchiers èobjets, fonctions, etc.è crçeçes durant une session interactive. De plus, ce rçepertoire contient d'autres æchiers crçeçes par S-PLUS dont: æ.audit: journal de toutes les commandes antçerieures, utile pour la fonction history æ.random.seed: utilisçe lors de gçençeration de valeurs alçeatoires æ last.dump,.last.æxed,.last.value èobjets utilitaires...è Note: Sous Windows, le sous-rçepertoire de travail se nomme DATA et se retrouve dans le rçepertoire dçeæni par la variable d'environnement HOME. 3

4 1.3 Syntaxe æ une fonction s'utilise toujours avec une paire de parenthçeses èpouvant ne rien contenirè æ une fonction utilisçee sans parenthçeses donnera le ësource" de la fonction en S-PLUS. Malheureusement plusieurs fonctions ne font qu'appeler une fonction interne S-PLUS non visible... æ une commande UNIX peut-^etre exçecutçee durant une session S-PLUS en la prçecçedant d'un point d'exclamation. Par contre, il faudra ^etre prudent dans l'utilisation de certaines commandes UNIX. æ tout texte ça la droite du caractçere è est un commentaire. Ceci est particuliçerement utile lorsqu'on çecrit ses propres fonctions. Exemples: è Ceci est une ligne de commentaire meanèxë-1ëè è moyenne sur x sauf l'element 1 æ il est permis de faire un Return durant l'çenoncçe d'une instruction; S-PLUS produira automatiquement le caractçere + au dçebut de la ligne suivante si la syntaxe de ce qui a dçejça çetçe tapçe ne peut pas ^etre considçerçe comme une instruction S-PLUS complçete. æ S-PLUS diæçerencie les minuscules des majuscules. 1.4 Remarques 1. Le symbole d'incitation ça donner une instruction èprompt symbolè est le caractçere plus grand èéè. 2. Enæn, on termine une session S-PLUS avec la fonction qèè. 3. Au CIRANO, une librairie locale de fonctions est automatiquement incluse lors de l'appel de S-PLUS. Cette librairie contient actuellement les fonctions suivantes: accent accent.postscript accent.table attach.dse ichar last.dump mixed.mtext.vector mixed.text.vector stringwidth accent.fin.fonte.1335 accent.ps.setfont.std.latin1 afm fquad is.file mixed.mtext mixed.text ps.fonts unix.true Ces fonctions sont dçecrites ça l'appendice A.

Chapitre 2 Objets S 2.1 Introduction æ Un nom d'objet est formçe de caractçeres alphanumçeriques et du point. Il doit dçebuter par une lettre. æ S-PLUS manipule des objets qui peuvent^etre, entre autres, des vecteurs, matrices, tableaux, catçegories, sçeries èchronologiquesè, listes et fonctions. S-PLUS oære aussi un objet de type data frame. æ un objet peut possçeder des attributs: - un mode: logique, numçerique, complexe et caractçere; - une longueur: souvent le nombre d'çelçements dans l'objet; - des noms associçes aux çelçements dans l'objet. 2.2 Assignation La forme gçençerale de l'assignation est: objet symbole d'assignation expression æ objet: peut ^etre tout objet; si le reste de l'assignation est absente, on aura le contenu de l'objet æ symbole d'assignation: peut ^etre le caractçere èsoulignçeè ou la paire de caractçeres é- æ expression: peut ^etre un objet, une partie d'objet ou une transformation arithmçetique, logique de plusieurs objets. Remarque: Si un nom d'objet crçeçe èpar l'assignationè est un nom dçejça existant dans S-PLUS, le logiciel utilisera toujours, par dçefaut, l'objet de l'usager. Les fonctions assign et get permettent de manipuler des objets ayant des noms identiques èdans le rçepertoire de l'usager et dans S-PLUSè. Malgrçe l'existence des deux fonctions nommçees prçecçedemment, on suggçere d'essayer de trouver des noms ëoriginaux" ça ses objets. Dans certaines situations èmais pas toujours!...è, S-PLUS indiquera cette duplication de noms par le message suivant: Warning messages: assigning "nom de l'objet" masks an object of the same name on database... 2.3 Manipulations On peut manipuler les objets de plusieurs façcons: æ liste du contenu èles çelçementsè de l'objet æ transformation arithmçetique dont: - les 4 opçerations traditionnelles è+, -, *, =è, ^ èexponentationè, è=è èdivision entiçereè, èè èmoduloè, è*è èproduit matricielè, etc. 5

6 æ opçeration logique dont: é; é; é=;é=;== èçegalè,!= èdiæçerentè, & èetè, j èouè,! ènçegationè, etc. æ extraction d'une partie d'objet; ceci se fera par une manipulation logique ou par la mention d'un indice æ fonction èprçe-dçeænie ou de l'usagerè sur l'objet 2.4 Vecteur L'objet de type vecteur est trçes important dans S-PLUS. Un objet d'un seul çelçement sera considçerçe comme un vecteur de longueur 1. Exemples de manipulations de vecteurs 1. data1 cè12.1,8.4,0.1,3è: la fonction cèè crçee un vecteur dont la longueur est le nombre d'çelçements donnçe 2. data2 cè6.02,2.8,0.025,.6è 3. data1 = 2 ë1ë 6.05 4.20 0.05 1.5 Remarques: 1è Les 2 objets n'ayant pas la m^eme longueur, l'objet 2 est rçepçetçe pour complçeter l'opçeration. 2è Le symbole ë1ë indique que le rçesultat est un vecteur et sert ça numçeroter les çelçements lorsque ceux-ci n'ont pas de noms èvoir la fonction namesè. 4. data1 + cè2,4è ë1ë 14.1 12.4 2.1 7.0 5. resul data1 = 2: crçeation de l'objet resul qui sera un vecteur 6. data1 é 1.0 ë1ë F F T F: manipulation logique dont le rçesultat est un vecteur d'çelçements logiques èmode logiqueè; F signiæe False et T True 7. data2ë3ë ë1ë 0.025: çelçement 3 du vecteur data2 qui devient un vecteur de longueur 1 8. data1ë2:4ë ë1ë 8.4 0.1 3.0: les çelçements 2 ça 4 du vecteur data1 qui deviennent unvecteur de longueur 3 9. data1ë-1ë ë1ë 8.4 0.1 3.0: les çelçements de data1 sauf l'çelçement 1 10. data1ëdata1 é 1ë ë1ë 12.1 8.4 3: les çelçements de data1 qui appartiennent ça la condition ë...ë; note: ceci est diæçerent de data1 é 1 11. data2ëdata1 é 1ë ë1ë 6.02 2.8.6: les çelçements de data2 qui sont vrais sous la condition faite sur data1 12. è1:33è ë1ë12345678910111213141516171819202122232425 ë26ë 26 27 28 29 30 31 32 33: gçençerer une sçequence de nombres; forme abrçegçee de la fonction seq 13. è1:3èëdata1 é 1ë ë1ë 3: leèsè numçeroèsè de sçequence parmi les 3 premiers çelçements soumis ça la condition

7 14. è1:4èëdata1 é 1 & data2 é 1ë ë1ë 3: leèsè numçeroèsè de sçequence des çelçements de valeur True du vecteur logique crçeçe par la condition 15. meanèdata1è ë1ë 5.9: appel de la fonction prçe-dçeænie mean èmoyenne arithmçetiqueè 16. lengthèdata1è ë1ë 4: appel de la fonction prçe-dçeænie length ètaille du vecteurè 17. data1.moy meanèdata1è è1:lengthèdata1èèëdata1 é data1.moyë ë1ë 1 2:leèsè numçeroèsè de sçequence des çelçements de data1 supçerieurs ça leur moyenne 18. namesèdata1è cè"christian","normand","robert","roch"è: associe des noms ça chaque çelçement du vecteur. Ainsi: data1 Christian Normand Robert Roch 12.1 8.4 0.1 3 2.5 Matrice et tableau L'objet matrice est çevidemment semblable ça la notion bien connue en mathçematique. On peut associer des noms aux lignes et colonnes de cet objet. De plus, il est facile de manipuler des sous-matrices d'une matrice. Enæn, l'objet matrice fait rçefçerence uniquement ça des tableaux ça 2 dimensions; c'est l'objet tableau èarrayè qui reprçesente les tableaux ça plus de 2 dimensions. Dans ce document, on ne traite que de l'objet matrice. Les exemples qui suivant prçesentent des matrices dont les entrçees sont des nombres mais S-PLUS peut manipuler des matrices de caractçeres ou d'çelçements logiques. Exemples de manipulations de matrices 1. mat1 matrixèè1:15è,nrow=3,ncol=5,byrow=tè: crçeation d'un objet matrice ça l'aide de la fonction matrix. Ainsi: mat1 ë,1ë ë,2ë ë,3ë ë,4ë ë,5ë ë1,ë 1 2 3 4 5 ë2,ë 6 7 8 9 10 ë3,ë 11 12 13 14 15 2. mat1ë2,1ë ë1ë 6: çelçement mat121 3. L'utilisation d'une ligne ou colonne d'une matrice est possible de plusieurs façcons: èaè mat1ë,2ë: vecteur contenant la deuxiçeme colonne de la matrice mat1 èbè mat1ë,2,drop=fë: une matrice 3 æ 1 contenant la deuxiçeme colonne de la matrice mat1 ècè mat1ë1,,drop=fë: une matrice 1 æ 3 contenant la premiçere ligne de la matrice mat1 4. mat1ë,2ë - 2 ë1ë 0 5 10: cette soustraction produit ce vecteur 5. mat2 mat1ë,-2ë: produit une nouvelle matrice 3 æ 4 ayant ^otçe la deuxiçeme colonne de la matrice mat1 6. tèmat1è: appel de la fonction prçe-dçeænie t ètransposçeeè

8 7. mat1 è*è tèmat1è: produit matriciel de la matrice mat1 par sa transposçee 8. dimnamesèmat1è listècè"r1","r2","r3"è,cè"c1","c2","c3","c4","c5"èè: fonction prçe-dçeænie dimnames qui associe aux lignes et aux colonnes de la matrice des noms; voir ça la section 2.7 pour la notion de liste èlistè. De plus, lors de transformations arithmçetiques de cette matrice identiæçee les noms associçes seront conservçes si possible. Ainsi: mat1 c1 c2 c3 c4 c5 r1 1 2 3 4 5 r2 6 7 8 9 10 r3 11 12 13 14 15 tèmat1è r1 r2 r3 c1 1 6 11 c2 2 7 12 c3 3 8 13 c4 4 9 14 c5 5 10 15 9. mat1ë"r3","c2"ë ë1ë 12: çelçement de la matrice retracçe par ses noms aux indices de ligne et colonne 10. ncolèmat1è ë1ë 5: fonction prçe-dçeænie indiquant le nombre de colonnes de la matrice 11. nrowèmat1è ë1ë 3: fonction prçe-dçeænie indiquant le nombre de lignes èrangçeesè de la matrice 12. dimèmat1è ë1ë 3 5: fonction prçe-dçeænie produisant un vecteur de longueur 2 contenant le nombre de lignes et de colonnes. Ainsi: nrowèmat1è est çequivalent ça dimèmat1èë1ë et ncolèmat1è est çequivalent ça dimèmat1èë2ë 13. mat3 rbindèmat1,cè-2,-1,0,1,2èè: crçeation d'une nouvelle matrice formçee de la matrice mat1 et d'une rangçee èrowè supplçementaire indiquçee par le vecteur nommçe 14. mat4 cbindèmat1,repè1,rowèmat1èèè: crçeation d'une nouvelle matrice formçee de la matrice mat1 et d'une colonne ècolumnè supplçementaire de 1 2.6 Data frame S-PLUS oære un autre type d'objet: data frame. Celui-ci est en fait semblable au type matrice. Dans le cas d'une matrice toutes les valeurs sont dum^eme type tandis que le cas du data frame, on peut mettre dans chaque colonne des types diæçerents. Dans l'exemple suivant: nouvo data.frameèdata1,data2,data1é1è l'objet nouvo contiendra: data1 data2 data1...1 Christian 12.1 6.020 FALSE Normand 8.4 2.800 FALSE Robert 0.1 0.025 TRUE Roch 3.0 0.600 FALSE dont les colonnes sont de type numçerique et logique. De plus, S-PLUS a attribuçe automatiquement des noms aux lignes et aux colonnes de ce data frame en utilisant, pour identiæer les lignes, les noms d'un des vecteurs èdata1è utilisçes pour la crçeation de cet objet et, pour identiæer les colonnes, les noms des arguments. Pour plus de dçetails, consulter le S-PLUS User's Manual.

9 2.7 Liste Un objet de mode liste est un ensemble pouvant contenir plusieurs çelçements ècomposantesè qui peuvent ^etre de diæçerents modes. Ce concept est trçes versatile et permet des manipulations d'objets pouvant devenir trçes sophistiquçes. Exemples de manipulations de listes 1. liste1 listèdata1,mat1,cè1.1,2.2,3.3è,cè"allo","bonjour"èè: crçeation de l'objet liste1 qui contient 4 composantes è 2 objets prçecçedemment crçeçes èun vecteur et une matriceè, un vecteur numçerique et un vecteur caractçereè 2. liste1ëë3ëë ë1ë 1.1 2.2 3.3: composante 3 de la liste liste1 3. listeëë4ëëë2ë ë1ë "Bonjour": deuxiçeme çelçement de la composante 4 èqui est un vecteurè de la liste 4. liste1 listèvect1=data1,mat=mat1,vect2=cè1.1,2.2,3.3è,nom=cè"allo","bonjour"èè: similaire ça l'exemple 1 mais en associant des noms ça chacune des composantes de la liste 5. liste1$vect2: similaire ça l'exemple 2 en supposant l'association des noms dçeænis ça l'exemple 4 6. tèliste1ëë2ëëè ou tèliste$matè: transposçee de la matrice mat1; toute composante d'une liste est un objet utilisable dans toute manipulation d'objet 7. liste2 listèlisteune=liste1,logique=cèt,t,f,f,tèè: crçeation d'une liste contenant 2 composantes dont la premiçere est une liste et la seconde un vecteur logique; ainsi, liste2ëë1ëëëë3ëëë1ë ou liste2$listeune$vect2ë1ë sera l'çelçement 1 de la composante 3 de la composante 1 de la liste liste2 i.e. 1.1 2.8 Fonction 2.8.1 Principes fondamentaux S-PLUS est principalement basçe sur l'utilisation de fonctions qui sont des objets trçes puissants. Il existe 2 types de fonctions: celles dçeænies par l'usager et celles prçe-dçeænies èdans S-PLUSè. La syntaxe d'une fonction S-PLUS est: nomèparamçetresè æ une fonction peut n'avoir aucun paramçetre æ s'il y a plus d'un paramçetre, ceux-ci doivent ^etre sçeparçes par des virgules æ le rçesultat d'une fonction ne vaut qu'une valeur mais celle-ci peut ^etre complexe èex.: une listeè. La valeur de la fonction est toujours la valeur reprçesentçee par la valeur de la derniçere variable assignçee dans la fonction. Exemple: functionèa,bè c é- a + b d é- a - b Cette fonction retourne la valeur de la variable d.

10 æ les valeurs des paramçetres de la fonction peuvent ^etre transmises par position ou par mot-clçe; il y a trçes souvent une valeur par dçefaut pour les paramçetres Exemple: la fonction rnorm qui gçençere des nombres d'une loi Nèmean, sd 2 è est dçeænie: rnormèn,mean=0,sd=1è n nombre de valeurs ça gçençerer mean moyenne; valeur par dçefaut: 0 sd çecart-type; valeur par dçefaut: 1 Ainsi: rnormè5è: gçençere 5 nombres d'une Nè0,1è rnormè5,sd=4è: gçençere 5 nombres d'une Nè0,16è rnormèmean=2,n=4è: gçençere 4 nombres d'une Nè2,1è 2.8.2 Ecrire ç ses propres fonctions Pour çecrire ses propres fonctions S-PLUS, l'usager doit conna^çtre: æ un çediteur èvoir section 3.8è æ certaines fonctions S-PLUS utiles en programmation èvoir chapitre 3è 2.8.3 Rçegles de construction d'une fonction L'exemple ci-dessous est prçesentçe avec la fonction æx. Pour l'utilisation d'çediteurs, consultez la section 4.8. 1. Une fonction S-PLUS comporte: un nom, une paire de parenthçeses pouvant contenir des arguments, une accolade gauche, des lignes d'instructions et se termine par une accolade droite. 2. On suggçere, lors de la crçeation initiale d'une fonction, decrçeer la fonction sans aucune instruction et d'çediter ensuite cette fonction. Exemple: toto functionèx, valeur = 4èfg æxètotoè 3. L'çediteur se charge de prçesenter et d'indenter correctement les lignes de programmation de la fonction. 4. Si, en sortant de l'çediteur-fonction, il y a des erreurs de syntaxe, S-PLUS permet de retourner ça la fonction modiæçee avec la fonction æxèè. Exemple: æxètotoè...... çedition de la fonction puis sortie de l'çediteur Si un message d'erreur semblable ça celui-ci appara^çt: Syntax error:... used illegally at line..., æle ètmpèæx... Dumped Errors occurred; Use æxèè to re-edit this object. Il suæt de retourner dans la fonction en faisant: æxèè 5. Si la fonction contient des arguments, on associe ça chacun d'eux un mot-clçe ènomè et possiblement une valeur par dçefaut. Exemples: La fonction suivante ne contient aucun argument:

11 functionèè printè"bonjour"è printè"normand"è La fonction suivante contient deux arguments qui n'ont pas de valeurs par dçefaut: functionèmot1, mot2è printèmot1è printèmot2è La fonction suivante contient deux arguments qui possçedent des valeurs par dçefaut: functionèmot1 = "Bonjour", mot2 = "Normand"è printèmot1è printèmot2è Cette derniçere fonction est la plus intçeressante puisqu'elle permet de passer n'importe quelles valeurs aux deux arguments sans que ce soit obligatoire. 6. Si on crçee une fonction avec un nom qui existe dçejça dans l'ensemble des fonctions S-PLUS, le logiciel utilisera toujours, par dçefaut, la fonction de l'usager. Les fonctions assign et get permettent d'employer des noms identiques èdans le rçepertoire de l'usager et dans S-PLUSè. Malgrçe l'existence des deux fonctions nommçees prçecçedemment, on suggçere d'essayer de trouver des noms ëoriginaux" ça ses objets. Au moment de la crçeation initiale de la fonction personnelle, S-PLUS indiquera cette duplication par le message suivante: Warning messages: assigning "nom de la fonction" masks an object of the same name on database... 2.9 Objets de type modçele Dans les nouvelles versions de S-PLUS, le concept ëorientçe-objet" appara^çt avec la notion de ëmodçele". En fait, un des aspects intçeressants est que les fonctions reconnaissent dans un objet le genre de fonction qui a crçeçe celui-ci et produisent un rçesultat en consçequence. L'usager intçeressçe ça ce concept de modçele manipulçe par certaines fonctions aurait intçer^et ça consulter le livre Statistical Models in S de Chambers et Hastie... Exemple L'exemple ci-dessous utilise le modçele de rçegression linçeaire associçe ça la fonction lm. é bmdpë1:5,ë Id Age V1 V2 V3 V4 V5 V6 V7 ë1,ë 2381 22 67 144 1 200 43 98 54 ë2,ë 1610 25 62 128 1 243 41 104 33 ë3,ë 1797 25 68 150 2 50 38 96 30 ë4,ë 561 19 64 125 1 158 41 99 47 ë5,ë 2519 19 67 130 2 255 45 105 83 é resul1.lm é- lmèv7 ~ V1 + V2, data = data.frameèbmdpèè é resul1.lm

12 Call: lmèformula = V7 ~ V1 + V2, data = data.frameèbmdpèè Coefficients: èinterceptè V1 V2 35.71445-0.1646386 0.1704361 Degrees of freedom: 181 total; 178 residual Residual standard error: 10.81639 é parèmfrow=cè6,1èè é plotèresul1.lmè Remarques 1. l'instruction bmdpë1:5,ë permet de montrer que l'objet bmdp est une matrice de donnçees N x 9. Seules les 5 premiçeres lignes sont prçesentçees ici. 2. La fonction lm permet de fournir un modçele ça analyser en utilisant les noms des colonnes. Notons que l'objet ça analyser doit ^etre de type data frame d'oçu l'utilisation de la fonction data.frame dans le paramçetre data. 3. L'instruction resul1.lm indique que l'objet contient toutes les rçefçerences nçecessaires et certains rçesultats pour se rappeler comment cet objet a çetçe crçeçe. 4. Aprçes avoir redçeæni la fen^etre graphique avec l'instruction par, l'exçecution de l'instruction plot produira automatiquement èsans autres paramçetresè 6 graphiques reliçes ça l'analyse de rçegression: graphique des rçesidus, des quantiles, de la distance de Cook, etc. On remarque donc que l'utilisation de fonctions de type ëmodçele" permet de pouvoir manipuler et analyser des rçesultats dans un contexte bien dçeæni èla rçgression dans l'exemple ci-dessusè

Chapitre 3 Quelques fonctions çelçementaires 3.1 Fonctions de manipulation repèx,times,lengthè rçepçeter l'objet x pour times fois pour une longueur de length valeurs Exemples: èavec data1 dçeæni en 3.3.2è repèdata1,2è ë1ë 12.1 8.4 0.1 3 12.1 8.4 0.1 3 repèdata1,length=7è ë1ë 12.1 8.4 0.1 3 12.1 8.4 0.1 seqèfrom,to,by,length,alongè gçençerer une sçequence de nombres Exemples: seqè-1,4,length=9è ë1ë -1.000-0.375 0.250 0.875 1.500 2.125 2.750 3.375 4.000: gçençerer 9 nombres entre -1 et 4 èintervalles çegauxè seqè1,10,1è est çequivalent ça è1:10è sortèdataè trier en ordre croissant un vecteur data rmè...è dçetruire des objets èdu rçepertoire.dataè Exemples: rmèdata1è rmèdata1,data2,mat1è 3.2 Fonctions de transformations numçeriques Il existe une multitude de fonctions transformant les objets dont: æ sqrt, abs,exp,log, log10, fonctions trigonomçetriques, etc. æ ceiling, æoor, trunc, round, signif: arrondi, tronquation, nombre de chiæres signiæcatifs, etc. æ minè...è, maxè...è: valeur minimum ou maximum d'un vecteur numçerique 3.3 Fonctions d'aide lsèè lister les objets de l'usager; certains paramçetres peuvent ^etre mentionnçes dans des cas particuliers èvoir le chapitre 4è helpèfonctionè documentation interactive sur la fonction nommçee Note: helpènom de la fonction, Tè enverra ça l'imprimante par dçefaut la documentation de cette fonction. 13

14 help.startèè fonction de S-PLUS qui gçençere une fen^etre oçu l'usager peut chercher interactivement ça l'aide de la souris, la documentation sur une fonction. La recherche se fait par thçemes èou catçegoriesè. Particuliçerement utile lorsqu'on ne conna^çt pas le nom de la fonction dont oncherche la documentation... historyèpattern, max=10è relevçe èça partir du æchier.auditè des max èvaleur par dçefaut:10è derniçeres instructions S-PLUS oçu la cha^çne de caractçeres pattern est apparue; ça la suite de ce relevçe, il est possible d'en choisir une et de la rçeexçecuter automatiquement. Si max=1ou si la fonction ne retrace qu'une instruction, celle-ci sera automatiquement rçeexçecutçee. Exemples: historyèdensiteè pourrait produire ceci: 1: lprèdensiteè 2: fixèdensiteè functionèreper, beta, gamma, omega, borneè basef é- pasteè"èexportèhome2èghyselseèggsè", reper, "è", reper, sep = ""è; nlgr é- 3; parmfrow = cènlgr, 2è, oma = cè0, 0, 2, 0èè 3: densite 4: densite 5: densite 6: densiteè"bt2", "a", "l", 1:6, 1.96è 7: densiteè"bt2", "aë",ë"lë",1:6,1.96èënë"èënë"ënèën"è 8: argsèdensiteè 9: densite Selection: Il suærait de choisir, s'il y a lieu un nombre entre 1 et 9 èil n'y avait que 9 occurences de la cha^çne spçeciæçee dans cet exempleè pour que l'instruction soit exçecutçee ça nouveau. Note: cette fonction possçede d'autres arguments. 3.4 Fonctions graphiques 3.4.1 Introduction Parmi les fonctions graphiques, ce document prçesente les plus simples et les plus utiles. L'explication des paramçetres y est trçes simpliæçee. L'usager devra consulter le manuel ou utiliser interactivement la fonction helpènom de la fonctionè. Pour qu'un graphique soit dirigçe vers un support d'impression, une fonction d'impression è X11èè, motifèè, postscriptèè, etc.è doit ^etre active. De plus, la fonction d'impression demeure active tant qu'une autre fonction d'impression n'a pas çetçe appelçee. 3.4.2 Fen^etres graphiques et impression X11èè, motifèè pour l'impression ça l'çecran des graphiques sous le gestionnaire d'çecran X11. La fen^etre produite comporte un menu permettant ça tout moment de commander l'impression vers l'imprimante par dçefaut du graphique tel qu'il appara^çt ça l'çecran. Mais pour une meilleure qualitçe d'impression, on suggçere d'utliser la fonction postscriptèè. Les boutons de menu de cette fen^etre permettent de modiæer l'impression, copier la fen^etre, etc. postscriptèè diriger les graphiques vers l'imprimante par dçefaut NEUVILLETTE dev.curèè,dev.listèè,... dans S-PLUS, il existe plusieurs fonctions permettant de travailler simultançement dans plusieurs fen^etres graphiques etèou imprimante. Il n'y a toujours qu'une fen^etre èimprimanteè ëcourante" ça la fois mais avec les fonctions de type dev. il est possible de changer la fen^etre courante. Pour plus de dçetails, voir le S-PLUS User's Manual.

15 graphics.oæèè permet de s'assurer que tous les devices èdestinations, support d'impressionè graphiques sont ëfermçes", s'assurant ainsi le dçebut de l'impression èparticuliçerement dans le cas de la fonction postscriptèèè. Il faut noter qu'un graphique n'est physiquement imprimçe que lorsque S-PLUS est certain qu'il n'y a plus rien d'autres ça ajouter ça ce graphique. La fonction exige que l'usager rçeexçecute une nouvelle fonction d'impression. dev.oæèè ëferme" le plus rçecent device activçe. La liste des devices forme une pile: dernier activçe, premier dçesactivçe. 3.4.3 Fonctions graphiques de base Introduction S-PLUS contient un ensemble de fonctions graphiques trçes intçeressantes. S-PLUS oære des fonctions graphiques qui ëajoutent" ça un graphique èex.: title, lines, abline, etc.è tandis que d'autres rçeinitialisent èëhaut niveau"è la fen^etre graphique èex.: plot, hist, etc.è. Un usager intçeressçe ça utiliser le graphisme dans S-PLUS aurait intçer^et ça consulter les multiples sections traitant de ce sujet dans les manuels de rçefçerence... Fonctions de haut niveau plotèx, y, type=ëp"è produit un nuage de points entre les vecteurs x et y matplot superposition de plusieurs nuages de points ça partir d'une matrice èchaque colonne de la matrice est un nuage de pointsè tsplot graphique d'une sçerie chronologique ètime sseriesè histèx, nclass, breaks, plot=t, angle, density, col, insideè trace un histogramme des valeurs du vecteur x boxplot graphique de type boxplot Fonctions ëajoutantes" title permet d'ajouter des titres et sous-titres ça un graphique lines, matlines, tslines similaires ça plot, matplot et tsplot mais ajoutent au graphique existant points, matpoints, tspoints similaires aux fonctions prçecçedentes mais ajoutent des points au graphique existant abline permet d'ajouter, entre autres, des lignes verticales ou horizontales dans un graphique legend permet d'ajouter une lçegende ça un graphique text permet d'ajouter du texte dans un graphique mtext permet d'ajouter du texte dans les marges du graphique axis permet de redçeænir les axes d'un graphique. Il faut noter que cette fonction s'utilise lorsqu'on trace un graphique sans la construction automatique des axes. Exemple: plotèvect1, vect2, type = ''l'', axes = Fè ; axisè2è ; boxèè ; axisè1, seqè100, 150, length = 25è, label = vect.nomè

16 3.4.4 Paramçetres graphiques èfonctionparèèè La fonction parèè permet de modiæer des dizaines de paramçetres graphiques. Ces paramçetres sont aussi diversiæçes que: largeur des marges, fontes, type de lignes, subdivision de la fen^etre en plusieurs graphiques, etc. Un appel ça cette fonction modiæera les paramçetres graphiques par dçefaut pour tout graphique qui suivra. Seuls une fermeture d'un device ou un nouvel appel ça la fonction par pourra modiæer les paramçetres aæectçes. De plus, certains des paramçetres graphiques de cette fonction peuvent^etre modiæçes temporairement ça l'appel d'une focntion. Exemples: 1è parèlty = 2è ; plotèx,yè ; linesèa,bè 2è plotèx,yè ; linesèa,b,lty = 1è Ci-dessus, les 2 courbes de l'exemple 1 seront en pointillçe tandis que dans l'exemple 2, seule la courbe produite par lines sera en pointillçe. 3.4.5 Famille des fonctions Trellis Il existe aussi dans S-PLUS une èplus ou moinsè rçecente famille de fonctions graphiques nommçee Trellis. Un usager intçeressçe par le graphisme aurait intçer^et ça consulter le manuel Trellis Graphics User's Manual qui prçesente cet autre ensemble de fonctions graphiques. 3.5 Fonctions statistiques Il existe une grande variçetçe de fonctions statistiques avancçees dans diæçerents domaines: rçegression, ANOVA, multidimensionnel, sçeries chronologiques, non paramçetrique, etc. Ce document ne prçesente que quelques fonctions statistiques çelçementaires. Pour une documentation plus complçete, faire helpènom de la fonctionè ou consulter le manuel de rçefçerence. corèx, y, trim=0è corrçelation ou matrice de corrçelations èsi x ou y sont des matricesè. meanèx, trim=0è moyenne ètronquçee ou nonè des çelçements d'un vecteur medianèxè mçediane des çelçements d'un vecteur prodè...è produit des çelçements d'un vecteur quantileèx, probs=seqè0,1,.25èè quantile d'une distribution d'çelçements d'un vecteur. Par dçefaut, le rçesultat est un vecteur dont les çelçements sont: la valeurs minimum, les quartiles et la valeur maximum. sampleèx, size, replace=fè gçençerer un çechantillon alçeatoire set.seedèiè permet de æxer le germe avant une gçençeration de nombres alçeatoires. Utile pour regçençerer un m^eme ensemble de valeurs. stemèx, nl, scale, twodig=1, fence, head=t, depth=fè produit un histogramme de type ëstem-andleaf". M^eme si le rçesultat est un histogramme, ce n'est pas une fonction graphique car l'histogramme n'appara^çt pas dans la fen^etre graphique. sumè...è somme des çelçements d'un vecteur varèx, yè variance des çelçements d'un vecteur ou matrice de covariances si les arguments sont des matrices. L'argument y n'est pas nçecessaire pour la variance d'un vecteur x. beta, cauchy, chisq, exp, f, gamma, logis, lnorm, norm, t, unif, binom, geom, hyper, nbinom, pois, weibull et plusieurs autres...: noms de code relatifs aux distributions suivantes: Beta, Cauchy, ç 2, Exponentielleè1è, F de Fisher, Gamma, Logistique, Log-normal, Normale, T de Student, Uniforme, Binomiale, Gçeomçetrique, Hypergçeomçetrique, Binomiale nçegative, Poisson et Weibul, etc.. Ces noms de code doivent ^etre prçecçedçes d'un des 4 prçeæxes suivants:

17 d fonction de densitçe p fonction de rçepartition q quantiles r gçençeration de nombres alçeatoires Chaque fonction possçede ses propres arguments. Exemples: 1. Valeur de la fonction de densitçe d'une Betaè4,5è au point 0.1: dbetaè.1,4,5è ë1ë 0.183708 2. Valeurs de la fonction de rçepartition d'une Cauchyè0,20è aux trois points nommçes: pcauchyècè2,4,6è,0,20è ë1ë 0.5317255 0.5628330 0.5927736 3. Dçeciles d'une ç 2 5 : qchisqèseqè.1,.9,.1è,5è ë1ë 1.610308 2.342534 2.999908 3.655500 4.351461 5.131868 6.064431 7.289279 ë9ë 9.236354 4. Gçençeration de 5 valeurs alçeatoires d'une Expè1è: rexpè5è ë1ë 1.2752478 2.3055170 1.6694114 0.1327236 0.6108058 3.6 Fonctions utiles ça la programmation de ses propres fonctions Un usager qui doit çecrire une fonction, peut utiliser toutes les fonctions du logiciel èet ses propres fonctions...è pour construire celle-ci. En plus des fonctions mentionnçees dans les autres sections, mentionnons quelques autres fonctions. Note: pour plus d'informations, voir le manuel de rçefçerence ou faire helpènom de la fonctionè. Pour les fonctions if et for, il faut faire: helpè"if"è et helpè"for"è èc'est stupide mais c'est comme çca...è applyèx, MARGIN, FUN,...è permet d'appliquer aux lignes ou colonnes èargument MARGINè d'une matrice èargument Xè, la m^eme fonction èargument FUNè. Exemples: applyèmat,2,meanè produit un vecteur de moyennes des colonnes de la matrice tèapplyèmat,1,sortèè produit une matrice dont chaque ligne est triçee en ordre croissant. L'utilisation de la fonction t ètransposçeeè est nçecessaire pour produire une nouvelle matrice aux m^emes dimensions que l'originale. for semblable ça l'instruction do ou for dans d'autres langages de programmation. La syntaxe gçençerale est: forèvariable in objetè f... instructions... g Si le bloc d'instructions ne contient qu'une instruction, la paire d'accolades est facultative. Exemple: forèi in è1:norigineèè matplotèresulëëiëëë, 1ë, resulëëiëëë, 2:4ë, type = "lol", lty = cè2, 1, 2è, pch = "p", col = 1è titleèmain = pasteè"origine: temps", origineëiëè, cex = 0.7è linesèresulëëiëëë, 1ë, resulëëiëëë, 5ë, type = "o", pch = "r"è