37
SAS ® Introduction au décisionnel : du data management au reporting 4 e édition Sébastien Ringuedé Préface de Christophe Bonnefoux Couvre les programmes des certifications SAS CERTIFIED SPECIALIST: BASE PROGRAMMING USING SAS ® 9.4 & ADVANCED PROGRAMMING FOR SAS ® 9

S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

42 €

© Studio Eyrolles / Éditions Eyrolles Cod

e éd

iteur

: G

6763

1IS

BN

: 97

8-2-

212-

6763

1-0

Une bible magistrale sur SASCe livre présente le socle de connaissances communes à tous les utilisateurs de SAS, le progiciel d’informatique décisionnelle le plus utilisé au monde. Il traite tout particulièrement des fonctionnalités de Base SAS, module au cœur du système SAS. Pédagogique et complet, il peut servir aussi bien de guide d’initiation pour les utilisateurs débutants que d’ouvrage de référence pour les plus expérimentés, et concerne aussi bien les utilisateurs de SAS Foundation que ceux de SAS Enterprise Guide, SAS Studio et SAS University Edition. Cet ouvrage couvre les programmes des certifications SAS Certified Specialist: Base Programming Using SAS® 9.4 et Advanced Programming for SAS® 9.Parmi les sujets développés :• la création, la manipulation et la gestion des tables de données ;• les procédures d’exploration des données : construction de tableaux, de rapports, de graphiques au moyen des procédures ODS Graphics ;• la production de documents au format HTML, PowerPoint, RTF, XLSX ou PDF avec ODS ;• la procédure PROC SQL et le langage SQL de SAS ;• le langage macro spécifique à SAS.Pour vous aider à bien assimiler tous les concepts, le livre comprend près de 500 programmes d’exemples, plus de 150 exercices et des liens vers une centaine d’articles en ligne.

Une 4e édition mise à jour et augmentéeEnrichie de plus d’une centaine de pages, cette nouvelle édition propose des mises à jour importantes sur :• les passerelles entre SAS et Excel ;• l’optimisation des ressources ;• la production de graphiques au moyen de PROC SGPLOT et PROC SGPANEL ;• la création et gestion de vos tables au moyen de PROC SQL.Le livre, qui porte essentiellement sur la version 9.4 de SAS, est également compatible avec les versions 9.2 et 9.3.Ce livre a le soutien de SAS France.

À qui s’adresse cet ouvrage ? • Aux professionnels souhaitant découvrir ou approfondir leurs connaissances de la programmation SAS• Aux étudiants qui débutent avec SAS ou qui souhaitent préparer les examens de certification SAS Certified Specialist:

Base Programming Using SAS® 9.4 et Advanced Programming for SAS® 9

Sébastien Ringuedé est maître de conférences en sciences économiques à l’uni-versité d’Orléans. Il utilise SAS depuis près de 30 ans dans le cadre des recherches qu’il effectue au sein du Laboratoire d’Économie d’Orléans. Il enseigne SAS aux étudiants du master ESA (Économétrie et Statistique Appliquée) depuis sa création.

Au sommaire  Faire connaissance avec votre environnement SAS • Aller plus loin dans la création de tables SAS • Modi�er les tables • Combiner les tables SAS • Travailler e�cacement sous SAS • Maîtriser les procédures de base • Produire des graphiques • Utiliser ODS • Découvrir PROC SQL • Programmer sous SAS avec le langage macro • Un cas pratique • Annexe. L’aide SAS SA

S®S.

Rin

gued

é4e éd

ition SAS®

Introduction au décisionnel :du data management au reporting

4e édition

Sébastien RinguedéPréface de Christophe Bonnefoux

Couvreles programmes

des certificationsSAS CERTIFIED SPECIALIST: BASE PROGRAMMING USING SAS® 9.4

&ADVANCED PROGRAMMING

FOR SAS® 9

Introd

uctio

n au d

écisi

onne

l :du

data

mana

geme

nt au

repo

rting

Page 2: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

Une bible magistrale sur SASCe livre présente le socle de connaissances communes à tous les utilisateurs de SAS, le progiciel d’informatique décisionnelle le plus utilisé au monde. Il traite tout particulièrement des fonctionnalités de Base SAS, module au cœur du système SAS. Pédagogique et complet, il peut servir aussi bien de guide d’initiation pour les utilisateurs débutants que d’ouvrage de référence pour les plus expérimentés, et concerne aussi bien les utilisateurs de SAS Foundation que ceux de SAS Enterprise Guide, SAS Studio et SAS University Edition. Cet ouvrage couvre les programmes des certifications SAS Certified Specialist: Base Programming Using SAS® 9.4 et Advanced Programming for SAS® 9.Parmi les sujets développés :• la création, la manipulation et la gestion des tables de données ;• les procédures d’exploration des données : construction de tableaux, de rapports, de graphiques au moyen des procédures ODS Graphics ;• la production de documents au format HTML, PowerPoint, RTF, XLSX ou PDF avec ODS ;• la procédure PROC SQL et le langage SQL de SAS ;• le langage macro spécifique à SAS.Pour vous aider à bien assimiler tous les concepts, le livre comprend près de 500 programmes d’exemples, plus de 150 exercices et des liens vers une centaine d’articles en ligne.

Une 4e édition mise à jour et augmentéeEnrichie de plus d’une centaine de pages, cette nouvelle édition propose des mises à jour importantes sur :• les passerelles entre SAS et Excel ;• l’optimisation des ressources ;• la production de graphiques au moyen de PROC SGPLOT et PROC SGPANEL ;• la création et gestion de vos tables au moyen de PROC SQL.Le livre, qui porte essentiellement sur la version 9.4 de SAS, est également compatible avec les versions 9.2 et 9.3.Ce livre a le soutien de SAS France.

À qui s’adresse cet ouvrage ? • Aux professionnels souhaitant découvrir ou approfondir leurs connaissances de la programmation SAS• Aux étudiants qui débutent avec SAS ou qui souhaitent préparer les examens de certification SAS Certified Specialist:

Base Programming Using SAS® 9.4 et Advanced Programming for SAS® 9

Sébastien Ringuedé est maître de conférences en sciences économiques à l’uni-versité d’Orléans. Il utilise SAS depuis près de 30 ans dans le cadre des recherches qu’il effectue au sein du Laboratoire d’Économie d’Orléans. Il enseigne SAS aux étudiants du master ESA (Économétrie et Statistique Appliquée) depuis sa création.

Au sommaire  Faire connaissance avec votre environnement SAS • Aller plus loin dans la création de tables SAS • Modi�er les tables • Combiner les tables SAS • Travailler e�cacement sous SAS • Maîtriser les procédures de base • Produire des graphiques • Utiliser ODS • Découvrir PROC SQL • Programmer sous SAS avec le langage macro • Un cas pratique • Annexe. L’aide SAS SA

S®S.

Rin

gued

é4e éd

ition SAS®

Introduction au décisionnel :du data management au reporting

4e édition

Sébastien RinguedéPréface de Christophe Bonnefoux

Couvreles programmes

des certificationsSAS CERTIFIED SPECIALIST: BASE PROGRAMMING USING SAS® 9.4

&ADVANCED PROGRAMMING

FOR SAS® 9

Introd

uctio

n au d

écisi

onne

l :du

data

mana

geme

nt au

repo

rting

Page 3: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

SAS®

_Copyright_p1-4_.fm Page I Friday, March 1, 2019 11:48 AM

Page 4: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

DANS LA MÊME COLLECTION

C. BLAESS. – Solutions temps réel sous Linux.N°67711, 3e édition, 2019, 318 pages.

T. PARISOT. – Node.js.N°13993, 2018, 472 pages.

C. PIERRE DE GEYER, J. PAULI, P. MARTIN, E. DASPET. – PHP 7 avancé.N°67720, 2e édition, 2018, 736 pages.

H. WICKHAM, G. GROLEMUND. – R pour les data sciences.N°67571, 2018, 496 pages.

F. PROVOST, T. FAWCETT. – Data science pour l’entreprise.N°67570, 2018, 370 pages.

J. CHOKOGOUE. – Maîtrisez l’utilisation des technologies Hadoop.N°67478, 2018, 432 pages.

R. GOETTER. – CSS 3 Flexbox.N°14363, 2016, 152 pages.

H. BEN REBAH, B. MARIAT. – API HTML 5 : maitrisez le web moderne !N°67554, 2018, 294 pages.

W. MCKINNEY. – Analyse de données en Python.N°14109, 2015, 488 pages.

E. BIERNAT, M. LUTZ. – Data science : fondamentaux et études de cas.N°14243, 2015, 312 pages.

Retrouvez nos bundles (livres papier + e-book) et livres numériques sur

http://izibook.eyrolles.com

67631-SAS-INT.book Page II Thursday, February 28, 2019 7:10 PM

Page 5: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

Sébastien RinguedéPréface de Christophe Bonnefoux

SAS®

Introduction au décisionnel :du data management au reporting

4e édition

_Copyright_p1-4_.fm Page III Friday, March 1, 2019 11:48 AM

Page 6: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

En application de la loi du 11 mars 1957, il est interdit de reproduire intégralement ou partiellement le présent ouvrage,sur quelque support que ce soit, sans l’autorisation de l’Éditeur ou du Centre Français d’exploitation du droit de copie,20, rue des Grands Augustins, 75006 Paris.

© Éditions Eyrolles, 2019, ISBN : 978-2-212-67631-0

ÉDITIONS EYROLLES61, bd Saint-Germain75240 Paris Cedex 05

www.editions-eyrolles.com

Base SAS®, SAS®9, SAS® 9.1.3, SAS® 9.2, SAS® 9.3, SAS® 9.4, SAS® Data Integration Studio,SAS® Integration Technologies, SAS® Data Integration Server, SAS® Enterprise Data IntegrationServer, SAS® Enterprise Guide®, SAS® Enterprise Miner™, SAS® Forecast Server, SAS/Insight®,SAS OnlineDoc® documentation, SAS® University Edition, SAS® Windowing Environment,SAS/ACCESS®, SAS/CONNECT®, SAS/ETS®, SAS/GRAPH®, SAS/IML®, SAS/IML®Studio, SAS/OR®, SAS/QC®, SAS/STAT®, SAS® Viya®, SAS® Data Preparation, SAS® DataQuality, SAS® Decision Manager, SAS® Econometrics, SAS® In-Database Products, SAS® ModelManager, SAS® Optimization, SAS® Visual Analytics, SAS® Visual Statistics, SAS® Visual DataMining and Machine Learning, SAS® Visual Forecasting et SAS® Workflow Manager sont desmarques déposées de SAS Institute inc., Cary, North Carolina, USA.

Tous les autres noms de produits ou de marques cités dans cet ouvrage sont des marques déposées parleurs propriétaires respectifs.

Le nom SAS désignera, en fonction du contexte, le produit, le langage ou la société qui commercialise leprogiciel SAS. SAS se prononce « sass », comme un nom, et non comme un sigle.

Le propos de cet ouvrage n’engage que son auteur et en aucun cas SAS Institute s.a.s, filiale de SASInstitute Inc., ni SAS Institute Inc.

67631-SAS-INT.book Page IV Thursday, February 28, 2019 7:10 PM

Page 7: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

Je tiens à remercier une nouvelle fois SAS France et plus particulièrement Ariane Liger-Belair,directeur académique SAS France pour le soutien apporté à cet ouvrage.

Cet ouvrage n’aurait pas pu voir le jour sans l’aide de relecteurs. Pour cette 4e édition, mesremerciements vont tout particulièrement à : Christophe Bonnefoux, Chief Data Officer, BNPP AssetManagement, Andrei Costache, Consultant Support Clients, SAS France, Jean-François Derenty,Consultant Expert, Clément Juillet, SAS North EMEA Fraud & Risk Consultant, Grégoire deLassence, Responsable Pédagogie et Recherche, SAS France, Corentin Masson, Data Scientist, OakBranch, Pierre Maupu, Research Analyst, Banque Centrale Européenne et Jérémy Noël, ConsultantImplémentation Solutions, SAS France et, bien entendu, pour Eyrolles, à Anne Bougnoux, AlexandreHabian et Armelle Mancini.

Cet ouvrage doit beaucoup aux étudiants du master ESA (Économétrie et Statistique Appliquée)de l’université d’Orléans qui, par leurs questions et leurs remarques depuis 2004, ont enrichi au fildu temps cet ouvrage qui n’était au départ que le support de mon cours d’introduction à SAS.

www.univ-orleans.fr/deg/masters/ESA/

Les erreurs et imprécisions qui pourront apparaître dans cet ouvrage restent miennes.

Les demandes d’éclaircissements et les suggestions seront toujours les bienvenues :

[email protected]

Le site compagnon de cet ouvrage est un élément indispensable à votre apprentissage de SAS :www.sas-sr.com

Merci, une nouvelle fois, à Gilbert Colletaz, Christophe Hurlin et Solange Siegwald pour leurpatience…

À Laurence, Léonie, Marceau et Lucien qui ne connaissent de SAS que le temps que j’ai passé à larédaction des première, deuxième, troisième et quatrième éditions de cet ouvrage…

Remerciements

67631-SAS-INT.book Page V Thursday, February 28, 2019 7:10 PM

Page 8: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

67631-SAS-INT.book Page VI Thursday, February 28, 2019 7:10 PM

Page 9: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

Je tiens tout d’abord à remercier l’auteur de cet ouvrage, Sébastien Ringuedé, maître de confé-rences en sciences économiques à l’université d’Orléans, et Ariane Liger-Belair, directrice acadé-mique SAS France de m’avoir proposé de rédiger cette préface.

Dans quel contexte s’inscrit cet ouvrage ? Il arrive au bon moment !

Alors que l’ensemble des acteurs du marché de la Data, les éditeurs, les cabinets de conseils, lesjournalistes lors d’interviews, ne parlent actuellement que des sujets autour de l’Intelligence Artifi-cielle, le machine-learning, le deep-learning, l’IoT, les ChatBots, le Natural Language Processing,le Voice-to-Text, les crypto-monnaies, la BlockChain… il m’apparaît important de rappeler que,sans les fondements, les bases du métier de la Data, rien de tout cela ne serait possible.

En tant que Chief Data Officer (CDO) de BNPP Asset Management, et certainement au nom debon nombre d’autres CDO que je côtoie, je peux vous confirmer que l’ensemble des organisationsrecherchent des profils ayant des compétences en Ingénierie Data et en Data Management.

La vague de la Data Science est passée. Face à la pénurie européenne des profils de Data Scien-tists, le marché propose et pousse actuellement des solutions pour permettre au plus grand nombred’être des « cliqueurs » d’algorithmes, et non des « codeurs ». Cela est nécessaire en effet pour déli-vrer la valeur des données et obtenir le ROI tant attendu. Mais cela demande aux organisations dese doter de compétences en Master Data Management, en Data Quality Management et de ren-forcer leur Data Governance.

Depuis 2011-2012, le monde de la Data au sein des entreprises évolue de plus en plus vite, princi-palement en raison du phénomène Open Source, ce qui s’est traduit par l’accès, par le plus grandnombre, à des centaines d’algorithmes (librairies) jusqu’alors réservés à des ingénieurs de GrandesÉcoles ou à des experts.

Aujourd’hui en 2019, les collégiens codent avec Scratch, les lycéens en Python et/ou Open R, lesplates-formes DataSciences foisonnent (DreamQuark, DataKeen, Dataiku, IBM DSX, SASViya, RapidMiner…). Demain, l’ensemble des algorithmes seront disponibles sous forme d’API etauront une valeur marchande.

Par conséquent, compte tenu du passage en Run des plates-formes Big Data, et du socle tech-nique, actuellement disponible pour gérer la qualité des données dans ces nouveaux environne-

Préface

67631-SAS-INT.book Page VII Thursday, February 28, 2019 7:10 PM

Page 10: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

SASVIII

ments technologiques, tous les professionnels de la Data s’entendent à dire que le métier d’IngénieurData devient l’un des « Best Jobs in the World ».

Dans ce monde de la Data, cet ingénieur Data a trois objectifs :

• Le 1er est de savoir répondre à la question suivante : quelles sont les données nécessaires etutiles pour résoudre tel ou tel cas d’usage proposé par les Métiers ?

• Le 2e objectif est de s’assurer de l’intégrité, de la qualité des données et de respecter les règlesde protection des données personnelles.

• Le 3e est de savoir coder au moins 20 des 100 algorithmes de Data Sciences connus.

Il est donc primordial pour lui d’apprendre à se poser les bonnes questions et de développer son espritcritique dès la phase de collecte des données. Dans la vie des entreprises, une base de données parfaite,c’est-à-dire intègre, fiable, sans doublon ni champ vide, n’existe pas.

Quelles sont les qualités fondamentales de cet ouvrage ?

Cet ouvrage est essentiel. Il permet de comprendre les bases et fondements de l’univers des sciences dela donnée. Comment prétendre devenir Data Scientist ou expert en Intelligence Artificielle sans seposer les questions de Data Management, d’intégrité et de qualité des données ?

Cet ouvrage est unique. Pour en faire l’expérience tous les jours, il est très difficile de se doter d’unebibliothèque de livres de référence dans le domaine des sciences de la donnée et du Data Management.Il existe d’excellents ouvrages en Statistiques et Probabilités, en Data Sciences, mais ils n’abordent pasles sujets qui occupent 80 % du temps des professionnels de la Data lors du traitement de la donnée.

Cet ouvrage permet de progresser dans l’apprentissage de la « langue Data ». Chaque sujet est illustré,les procédures techniques sont détaillées et directement applicables.

Cet ouvrage s’adresse à tous. Les étudiants, les professionnels en recherche de reconversion (les besoinsen ressources en Data Management ne sont pas couverts), à tous ceux qui ont envie de parfaire leursconnaissances en Data Management, à tous ceux qui souhaitent élargir leur champ de compétences.

Le jugement humain aura toujours une longueur d’avance sur les algorithmes et l’Intelligence Artifi-cielle en ce qui concerne le choix, la validation des facteurs explicatifs (patterns), des leviers permettantd’obtenir le ROI d’un dispositif Advanced Analytics. L’auditabilité des algorithmes et la déontologiedes professionnels de la Data sont des enjeux majeurs.

Sébastien Ringuedé s’inscrit donc dans la longue liste des professeurs passionnés dont la vocation estde transmettre et de diffuser le savoir. Par cette préface, je voulais lui adresser ma plus sincère admira-tion et amitié.

Christophe Bonnefoux

Chief Data Officer BNPP Asset Management

67631-SAS-INT.book Page VIII Thursday, February 28, 2019 7:10 PM

Page 11: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

Table des matières

Introduction....................................................................................1Présentation de l’ouvrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Les nouveautés de la présente édition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2Progresser dans votre connaissance de SAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Les Certifications SAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Les pictogrammes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Comment travailler avec cet ouvrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Disposer du système SAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Les différentes plates-formes de SAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Les versions de SAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9SAS Windows, Unix, z/OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Conventions typographiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Présentation succincte d’autres modules de SAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

CHAPITRE 1Faire connaissance avec votre environnement SAS ..................15

1.1 Premiers pas avec SAS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.1.1 SAS Windowing Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.1.2 SAS Enterprise Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.1.3 SAS Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211.1.4 SAS University Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

1.2 Deux étapes distinctes : DATA et PROC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241.3 Les tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271.4 Les bibliothèques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.5 Créer une table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

1.5.1 Notre première table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341.5.2 L’éditeur SAS : une aide à la programmation . . . . . . . . . . . . . . . . . . . . . . . 391.5.3 Demander l’exécution d’un programme . . . . . . . . . . . . . . . . . . . . . . . . . . . 411.5.4 Lire le journal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421.5.5 Examiner la table créée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

1.6 Les sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471.6.1 Les destinations de vos sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481.6.2 Les sorties de SAS EG/Studio/UE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501.6.3 OPTIONS et TITLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

1.7 Compréhension approfondie du cas simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521.8 Introduction de valeurs manquantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

67631-SAS-INT.book Page IX Thursday, February 28, 2019 7:10 PM

Page 12: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

SASX

CHAPITRE 2Aller plus loin dans la création de tables SAS ...........................59

2.1 La création d’une table SAS à partir d’un fichier de données brutes . . . . . . . . . . . . . 602.1.1 Principes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602.1.2 L’INPUT BUFFER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632.1.3 Le codage des caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

2.2 Autres indicateurs de séparation des champs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662.2.1 Champs séparés par un caractère quelconque. . . . . . . . . . . . . . . . . . . . . . . . 662.2.2 Champs séparés par un point-virgule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682.2.3 Champs séparés par des tabulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

2.3 Les enregistrements formatés en colonnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702.3.1 Cas général . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702.3.2 Le pointeur +X. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732.3.3 Le pointeur @X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742.3.4 Une seconde application de @X : @'texte' . . . . . . . . . . . . . . . . . . . . . . . . . . 752.3.5 Cas particulier : le dernier champ est de longueur variable . . . . . . . . . . . . . . 762.3.6 SAS UE et les enregistrements formatés en colonnes . . . . . . . . . . . . . . . . . . 77

2.4 Plusieurs enregistrements pour construire une observation . . . . . . . . . . . . . . . . . . . 822.4.1 N enregistrements pour une observation . . . . . . . . . . . . . . . . . . . . . . . . . . . 822.4.2 Un enregistrement, plusieurs observations : @@ . . . . . . . . . . . . . . . . . . . . . 842.4.3 Les données hiérarchisées : @ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 862.4.4 Champs multiples pour un même identifiant. . . . . . . . . . . . . . . . . . . . . . . . 89

2.5 La gestion des valeurs manquantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 922.5.1 L’instruction globale MISSING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 922.5.2 Les valeurs manquantes non notées par un quelconque caractère . . . . . . . . . . 94

2.6 Les INFORMAT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 952.6.1 Les INFORMAT des variables caractères. . . . . . . . . . . . . . . . . . . . . . . . . . 952.6.2 Autres INFORMAT caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 982.6.3 Longueur des variables caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 992.6.4 Les INFORMAT des variables numériques . . . . . . . . . . . . . . . . . . . . . . . . 992.6.5 Des variables numériques particulières : les dates et heures . . . . . . . . . . . . . 1032.6.6 Créons notre propre INFORMAT ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

2.7 SAS, Excel, importation et exportation de tables . . . . . . . . . . . . . . . . . . . . . . . . . 1132.7.1 La procédure PROC IMPORT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1142.7.2 PROC IMPORT et l’importation de fichiers texte . . . . . . . . . . . . . . . . . . 1202.7.3 LIBNAME XLSX et PCFILES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1212.7.4 Les assistants d’importation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1252.7.5 Importer un fichier Excel via un fichier CSV. . . . . . . . . . . . . . . . . . . . . . . 1332.7.6 Exporter vos tables SAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342.7.7 La création de fichier TXT via les instructions FILE et PUT . . . . . . . . . . . 139

2.8 Le débogage des programmes de création de table . . . . . . . . . . . . . . . . . . . . . . . . 1412.8.1 Regarder et comprendre votre fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1412.8.2 Lire la fenêtre Journal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1422.8.3 Faire parler votre journal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1462.8.4 Examiner votre table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

67631-SAS-INT.book Page X Thursday, February 28, 2019 7:10 PM

Page 13: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

Table des matières XI

CHAPITRE 3Modifier les tables ..................................................................... 151

3.1 L’exécution par SAS de vos programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1523.1.1 La structuration du PDV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1533.1.2 Mode de structuration du PDV et variables caractères . . . . . . . . . . . . . . . . 1553.1.3 La longueur des variables numériques. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1573.1.4 Détermination du type d’une variable créée par un programme . . . . . . . . . . 1583.1.5 L’attribution des modalités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1603.1.6 L’instruction OUTPUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1633.1.7 Le contrôle des tables de sortie avec l’instruction OUTPUT. . . . . . . . . . . . 1653.1.8 L’instruction RETURN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

3.2 Les opérateurs et les fonctions usuelles de construction et de transformation des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

3.2.1 Les opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1673.2.2 Les fonctions numériques usuelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1683.2.3 Les fonctions statistiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1683.2.4 Les générateurs de nombres aléatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703.2.5 Les fonctions propres aux dates et aux heures . . . . . . . . . . . . . . . . . . . . . . 1713.2.6 D’autres fonctions utiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1763.2.7 Les fonctions sur variables caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1783.2.8 La création d’une fonction avec PROC FCMP . . . . . . . . . . . . . . . . . . . . . 188

3.3 Construire une table SAS « allégée » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1903.3.1 Effacer ou conserver uniquement certaines variables . . . . . . . . . . . . . . . . . 1903.3.2 Écarter ou ne conserver que certaines observations : IF, WHERE et SELECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1913.3.3 Sélectionner des observations avec l’option POINT= . . . . . . . . . . . . . . . . . 196

3.4 Construire de nouvelles variables au sein d’une table . . . . . . . . . . . . . . . . . . . . . . 1973.4.1 La construction sans condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1973.4.2 La construction sous conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200

3.5 Les boucles DO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2053.5.1 Le DO simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2053.5.2 Le DO itératif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2063.5.3 Les boucles DO UNTIL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073.5.4 Les boucles DO WHILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073.5.5 Les boucles DO sur ARRAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

3.6 Donner une mémoire à SAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173.6.1 L’instruction RETAIN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173.6.2 Les marqueurs FIRST. et LAST. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2213.6.3 Faire référence à des valeurs passées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223

3.7 Trois procédures pour modifier vos tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2253.7.1 PROC SORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2253.7.2 PROC RANK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2283.7.3 PROC TRANSPOSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

CHAPITRE 4Combiner les tables SAS ............................................................ 235

4.1 Concaténer des tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2364.1.1 Ajouter des observations avec un SET impliquant deux tables. . . . . . . . . . . 236

67631-SAS-INT.book Page XI Thursday, February 28, 2019 7:10 PM

Page 14: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

SASXII

4.1.2 PROC APPEND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2394.2 Fusionner des tables : MERGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240

4.2.1 MERGE – Cas standard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2414.2.2 Clés multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2434.2.3 MERGE ONE TO MANY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2434.2.4 Un outil pratique avec MERGE : les marqueurs IN. . . . . . . . . . . . . . . . . . 2444.2.5 Quelques sources de problèmes avec MERGE . . . . . . . . . . . . . . . . . . . . . 246

4.3 Mettre à jour une table : UPDATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2504.4 Techniques avancées de fusion de tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

4.4.1 Une utilisation inattendue des FORMAT . . . . . . . . . . . . . . . . . . . . . . . . 2524.4.2 Les tables de hachage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

CHAPITRE 5Travailler efficacement sous SAS ..............................................263

5.1 Accéder aux métadonnées d’une table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645.1.1 La procédure PROC CONTENTS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645.1.2 Accéder aux vues dictionnaires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

5.2 Les LABEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2705.2.1 Les LABEL de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2705.2.2 Les LABEL de tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271

5.3 Les FORMAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2725.3.1 L’utilisation de FORMAT prédéfinis sur des variables numériques . . . . . . . 2725.3.2 Quelques FORMAT utiles sur variables numériques . . . . . . . . . . . . . . . . . 2755.3.3 Les FORMAT d’affichage des variables de dates et d’heures . . . . . . . . . . . 2765.3.4 Les FORMAT d’affichage des variables caractères . . . . . . . . . . . . . . . . . . 2835.3.5 La création de FORMAT spécifiques . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

5.4 PROC DATASETS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2925.4.1 Les principes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2925.4.2 Une procédure différente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2945.4.3 Les options de PROC DATASETS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2945.4.4 L’instruction MODIFY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2955.4.5 Les instructions de gestion des fichiers SAS . . . . . . . . . . . . . . . . . . . . . . . 296

5.5 Optimiser vos ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2975.5.1 Gérer la mémoire vive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2985.5.2 Optimiser la taille de vos tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3035.5.3 Les index de table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311

5.6 La gestion des options globales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3185.6.1 Les options de SAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3185.6.2 Les options globales dans SAS Studio/UE/EG . . . . . . . . . . . . . . . . . . . . . 3215.6.3 Les modifications de vos options globales pour une session. . . . . . . . . . . . . 3225.6.4 La modification du fichier de configuration SASV9.CFG . . . . . . . . . . . . . 3235.6.5 AUTOEXEC.SAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324

CHAPITRE 6Maîtriser les procédures de base ..............................................327

6.1 Quelques éléments communs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3286.1.1 Rappel : quatre instructions communes. . . . . . . . . . . . . . . . . . . . . . . . . . . 3286.1.2 TITLE et FOOTNOTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328

67631-SAS-INT.book Page XII Thursday, February 28, 2019 7:10 PM

Page 15: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

Table des matières XIII

6.1.3 Les mots-clés des statistiques descriptives . . . . . . . . . . . . . . . . . . . . . . . . . 3306.1.4 Les tables CROSS et FOURNISSEUR13 . . . . . . . . . . . . . . . . . . . . . . . . 3326.1.5 L’utilisation des tables nécessaires à la reproduction des exemples . . . . . . . . 332

6.2 PROC MEANS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3326.2.1 Éléments de syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3326.2.2 Applications simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3346.2.3 Tables de résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3356.2.4 Variables de classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337

6.3 PROC PRINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3416.3.1 Éléments de syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3416.3.2 Exemples d’application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3426.3.3 L’option STYLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346

6.4 PROC REPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3506.4.1 Exemples simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3516.4.2 L’instruction DEFINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3526.4.3 Les variables et leurs usages possibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3526.4.4 Les rapports intégrant des informations de type liste et des informations de synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3606.4.5 Quelques références pour aller plus loin avec PROC REPORT . . . . . . . . . 362

6.5 PROC FREQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3646.5.1 Éléments de syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3646.5.2 Exemples d’application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3656.5.3 Tableaux croisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3656.5.4 Sorties graphiques ODS Statistical Graphics de PROC FREQ . . . . . . . . . 3686.5.5 Mise en forme des tableaux et tables de résultats . . . . . . . . . . . . . . . . . . . . 369

6.6 PROC TABULATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3716.6.1 Éléments de syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3716.6.2 La table FACTURES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3716.6.3 Structures lignes-colonnes des tableaux. . . . . . . . . . . . . . . . . . . . . . . . . . . 3726.6.4 Les variables d’analyse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3756.6.5 Choix de la statistique éditée dans le tableau . . . . . . . . . . . . . . . . . . . . . . . 3786.6.6 L’introduction de récapitulatifs dans les tableaux . . . . . . . . . . . . . . . . . . . . 3796.6.7 L’introduction de pourcentages dans les tableaux. . . . . . . . . . . . . . . . . . . . 3836.6.8 PROC TABULATE et ODS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386

CHAPITRE 7Produire des graphiques............................................................ 391

7.1 Les procédures ODS Graphics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3927.1.1 Les principes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3927.1.2 ODS Statistical Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3937.1.3 Une première approche de PROC SGPLOT . . . . . . . . . . . . . . . . . . . . . . 3957.1.4 Les exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401

7.2 Les outils de représentation des variables discrètes . . . . . . . . . . . . . . . . . . . . . . . . 4017.3 Les outils de représentation des distributions de variables continues . . . . . . . . . . . 410

7.3.1 HBOX/VBOX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4117.3.2 HISTOGRAM et DENSITY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413

7.4 Les outils de représentation des relations entre variables. . . . . . . . . . . . . . . . . . . . 4157.4.1 Les instructions basiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415

67631-SAS-INT.book Page XIII Thursday, February 28, 2019 7:10 PM

Page 16: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

SASXIV

7.4.2 SERIES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4167.4.3 BAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4197.4.4 Les instructions représentatives d’ajustement. . . . . . . . . . . . . . . . . . . . . . . 421

7.5 La procédure PROC SGPANEL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4237.6 La personnalisation des graphiques produits par les procédures Statistical Graphics 4287.7 La création de graphiques avec ODS Graphics Designer . . . . . . . . . . . . . . . . . . . 431

CHAPITRE 8Utiliser ODS .................................................................................433

8.1 ODS : les principes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4348.1.1 Qu’est-ce qu’une sortie SAS ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4348.1.2 Les destinations ODS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4358.1.3 Ouvrir et fermer une destination ODS . . . . . . . . . . . . . . . . . . . . . . . . . . . 4368.1.4 Les options et actions des destinations ODS externes à SAS . . . . . . . . . . . 4378.1.5 Les styles ODS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439

8.2 ODS OUTPUT et ODS DOCUMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4408.2.1 ODS OUTPUT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4418.2.2 ODS DOCUMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443

8.3 ODS HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4468.3.1 La gestion des fichiers des destinations externes . . . . . . . . . . . . . . . . . . . . 4468.3.2 ODS HTML – Principes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4468.3.3 Création de tables des matières . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4488.3.4 Paramétrer la table des matières . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4508.3.5 Personnaliser les feuilles de résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4528.3.6 Personnaliser les sorties avec ODS SELECT et EXCLUDE . . . . . . . . . . . 4598.3.7 Destinations multiples des sorties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4618.3.8 ODS HTML5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462

8.4 ODS PDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4638.4.1 Les principes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4638.4.2 La table des signets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4658.4.3 Les outils de mise en pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4658.4.4 ODS LAYOUT et ODS REGION . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467

8.5 ODS RTF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4718.6 ODS POWERPOINT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4748.7 ODS EXCEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479

8.7.1 Les principes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4798.7.2 Les sous-options de OPTIONS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4808.7.3 Aller plus loin avec ODS EXCEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4868.7.4 Et si je ne dispose pas d’ODS EXCEL ? . . . . . . . . . . . . . . . . . . . . . . . . . 489

CHAPITRE 9Découvrir PROC SQL ...................................................................491

9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4919.1.1 Qu’est-ce que SQL ?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4929.1.2 Que fait-on avec PROC SQL et avec quel type de données ? . . . . . . . . . . . 4929.1.3 Un langage adapté aux bases de données relationnelles . . . . . . . . . . . . . . . . 4939.1.4 Pourquoi apprendre PROC SQL ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4959.1.5 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497

67631-SAS-INT.book Page XIV Thursday, February 28, 2019 7:10 PM

Page 17: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

Table des matières XV

9.2 Générer des rapports simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4999.2.1 L’instruction SELECT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5009.2.2 La clause SELECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5009.2.3 La clause FROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5059.2.4 La clause WHERE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5079.2.5 La clause ORDER BY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510

9.3 Réaliser des rapports de synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5119.3.1 Le mot-clé DISTINCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5129.3.2 Les fonctions qui commandent une synthèse. . . . . . . . . . . . . . . . . . . . . . . 5129.3.3 Le paramétrage de votre sortie au moyen de la clause HAVING. . . . . . . . . 517

9.4 Les sous-requêtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5199.4.1 Les différents types de sous-requêtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5199.4.2 Les sous-requêtes renvoyant plusieurs valeurs . . . . . . . . . . . . . . . . . . . . . . 521

9.5 Les jointures horizontales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5259.5.1 Les jointures CROSS – La production de produits cartésiens . . . . . . . . . . . 5259.5.2 Les jointures INNER et OUTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5279.5.3 Les jointures avec clé répétée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5309.5.4 Fusionner plus de deux tables au moyen de PROC SQL . . . . . . . . . . . . . . 5339.5.5 Les jointures NATURAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5349.5.6 Les jointures réflexives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5369.5.7 Conditions des jointures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5379.5.8 L’utilisation de vues en ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538

9.6 Les jointures verticales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5419.6.1 Les jointures EXCEPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5429.6.2 Les jointures INTERSECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5459.6.3 Les jointures UNION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5479.6.4 Les jointures OUTER UNION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548

9.7 Les vues SQL et les tables dictionnaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5499.7.1 Les principes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5499.7.2 Les tables dictionnaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552

9.8 La création et la gestion des tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5549.8.1 La création de tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5549.8.2 Insérer des lignes dans votre table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5599.8.3 Modifier les valeurs prises dans une colonne . . . . . . . . . . . . . . . . . . . . . . . 5639.8.4 Supprimer des observations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5659.8.5 Ajouter, supprimer et modifier les caractéristiques des colonnes . . . . . . . . . 5659.8.6 Supprimer une table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567

CHAPITRE 10Programmer sous SAS avec le langage macro......................... 569

10.1 Les concepts du langage macro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57010.2 Les macro-variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574

10.2.1 Les principes des macro-variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57410.2.2 Accéder à la valeur d’une macro-variable . . . . . . . . . . . . . . . . . . . . . . . . . 57510.2.3 Les macro-variables automatiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57710.2.4 Supprimer des macro-variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579

10.3 Macro-variables et langage SAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58010.3.1 Les routines CALL SYMPUT et CALL SYMPUTX . . . . . . . . . . . . . . . 580

67631-SAS-INT.book Page XV Thursday, February 28, 2019 7:10 PM

Page 18: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

SASXVI

10.3.2 La création de macro-variables avec PROC SQL . . . . . . . . . . . . . . . . . . 58310.3.3 Utiliser vos macro-variables dans une étape DATA . . . . . . . . . . . . . . . . . 588

10.4 Les macro-fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59110.4.1 Les macro-fonctions d’évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59110.4.2 Les macro-fonctions de quoting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59210.4.3 Les outils de manipulation des valeurs de macro-variables . . . . . . . . . . . . 596

10.5 Premiers exemples sans macro-programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60010.5.1 Construire des rapports pré-paramétrés avec le macro-langage . . . . . . . . . 60110.5.2 Économiser vos ressources grâce au macro-langage . . . . . . . . . . . . . . . . . 602

10.6 Les macro-programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60410.6.1 Les principes des macro-programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . 60410.6.2 Construire ses macro-programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60510.6.3 Environnement local ou global. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60710.6.4 Le paramétrage des macro-programmes . . . . . . . . . . . . . . . . . . . . . . . . . 60810.6.5 Les macro-instructions propres aux macro-programmes . . . . . . . . . . . . . . 61110.6.6 Exercice récapitulatif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615

10.7 Conserver ses macro-programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61610.7.1 La sauvegarde des macro-programmes dans des fichiers externes . . . . . . . . 61710.7.2 L’enregistrement des macro-programmes dans un fichier CATALOG . . . 61810.7.3 AUTOCALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61910.7.4 Les macro-programmes compilés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62010.7.5 L’ordre d’exécution des macro-programmes . . . . . . . . . . . . . . . . . . . . . . 621

CHAPITRE 11Un cas pratique...........................................................................623

11.1 Énoncé du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62311.2 Les données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62611.3 Construire une méta-table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62711.4 Produire le graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632

Annexes.......................................................................................641L’aide SAS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641

L’aide 9.4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641L’aide en ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645

SAS : une communauté active d’utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647

Bibliographie ..............................................................................649

Index............................................................................................651

67631-SAS-INT.book Page XVI Thursday, February 28, 2019 7:10 PM

Page 19: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

Présentation de l’ouvrageCet ouvrage s’adresse à tout utilisateur des progiciels SAS devant recourir à la programmationBase SAS. S’il a été conçu avant tout à destination des utilisateurs novices, il permettra aux utilisa-teurs de niveau intermédiaire et expert d’approfondir et d’affiner leurs connaissances sur cet outilparticulièrement complet qu’est le système SAS. Le présent ouvrage peut être consulté aussi bienpar des professionnels que par des étudiants en statistique, économie, informatique, mathéma-tiques appliquées, biostatistique, pharmacie, gestion, marketing, des étudiants préparant parexemple un DUT STID, un master, un diplôme de MIAGE ou encore des étudiants en écolesd’ingénieur et de commerce.

L’objectif de ce livre est de présenter le socle de connaissances fondamentales et transversalesnécessaires à la programmation SAS, et commun à tous les utilisateurs quel que soit leur usage deSAS. Il offre une présentation des outils que les utilisateurs de SAS peuvent mobiliser pourconstruire, modifier, gérer, explorer et présenter leurs données.

Pour cette nouvelle édition, nous avons conservé une organisation très proche de celle adoptéedans les trois premières éditions. Les chapitres 1 et 2 sont consacrés à la phase de construction destables SAS. Il s’agit de deux chapitres essentiels, puisque nous y présentons l’ensemble des outilsque vous devrez exploiter pour construire des tables SAS à l’image exacte de vos données. Cepen-dant, même placées dans une table SAS, vos données n’auront jamais directement une forme quipermette leur exploitation : vous aurez très souvent besoin de construire de nouvelles variables oude sélectionner des observations présentant certaines caractéristiques. Le chapitre 3, après avoirdétaillé les caractéristiques du fonctionnement de SAS qui conditionnent votre programmation,vous présente les outils (opérateurs, fonctions, instructions et procédures) qui vous permettront deconstruire les tables contenant les variables requises par votre analyse. Nous examinerons ensuite,dans le chapitre 4, les outils mis à disposition par le langage Base SAS pour combiner vos tables. Ils’agit d’une phase importante, car il vous faudra très souvent mobiliser plusieurs sources pourconstruire la table dont vous avez besoin.

Introduction

67631-SAS-INT.book Page 1 Thursday, February 28, 2019 7:10 PM

Page 20: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

SAS2

Le chapitre 5 vous présente les nombreux outils qui vont vous permettre de travailler efficacement sousSAS. Ces outils concernent aussi bien l’organisation de votre espace de travail et l’optimisation de vosressources que la présentation de vos tables, des variables et de leurs modalités.

Les tables SAS ont bien entendu vocation à être exploitées : puisque notre objet est la présentation desconnaissances transverses à l’ensemble des utilisateurs SAS, nous présenterons dans cet ouvrage lesprocédures de primo-exploitation des tables et les outils qui permettent de retransmettre vos résultats.À ce titre, nous examinons dans le chapitre 6 les procédures qui vous seront nécessaires pour explorer,connaître et comprendre vos données. On ne peut en effet analyser ou présenter des données que si onles connaît bien. Ces outils d’exploration des tables vous seront utiles dans la phase de retransmissionde vos résultats : même si votre finalité première est l’analyse économétrique ou statistique, vous aureztrès souvent besoin de présenter au moyen de tableaux les données qui servent de base à votre analyse.

Nous traitons dans le chapitre 7 les procédures graphiques ODS Graphics qui peuvent, ici encore, êtreutiles lors des phases d’exploration et de restitution de vos résultats.

L’Output Delivery System (ODS) livré avec SAS est étudié dans le chapitre 8. Grâce à cette fonctionna-lité de SAS, vous avez la possibilité de produire en quelques instructions des documents attrayants auxformats HTML, PDF, RTF, PPTX et XLSX.

Le chapitre 9 vous propose ensuite une introduction au langage SQL et détaille la procédure PROCSQL que beaucoup d’utilisateurs de SAS mobilisent pour explorer les données contenues dans lesbases de données relationnelles.

Le langage macro n’est traité qu’au chapitre 10 car, pour percevoir son intérêt, il faut avoir une certaineexpérience de SAS et être conscient que votre travail comprend des phases répétitives, ou qu’il suffit demodifier quelques instructions pour qu’un programme dédié au traitement d’une table spécifiquepuisse aussi analyser une autre table. Enfin, nous présentons dans le chapitre 11 un cas pratique mobi-lisant les connaissances acquises au cours des dix premiers chapitres.

Les nouveautés de la présente éditionCette nouvelle édition est le fruit de discussions que nous avons pu avoir aussi bien avec SAS Francequ’avec des étudiants, des enseignants ou des utilisateurs professionnels de SAS, lecteurs des trois pre-mières éditions, et nous espérons qu’elle comblera leurs attentes.

Si peu de différences apparaissent entre le plan de la présente édition et celui de la troisième édition, denombreuses sections de la présente édition ont fait l’objet d’une réécriture et d’une réorganisation. De nou-veaux développements, de nouveaux exemples et de nouveaux exercices ont très souvent été introduits.

Il n’est pas possible de répertorier l’ensemble des nouveautés de cette édition, mais citons-en quelques-unes :

• Présentation des spécificités propres à la programmation au moyen de l’ensemble des plate-formes SAS : SAS Windowing Environment, SAS Enterprise Guide, SAS Studio et SASUniversity Edition. Nous ne présentions dans les précédentes éditions que la plate-forme SASWindowing Environment.

67631-SAS-INT.book Page 2 Thursday, February 28, 2019 7:10 PM

Page 21: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

Introduction 3

• Refonte complète, dans le chapitre 2, de la section consacrée à l’importation de fichiers Excelet l’exportation des tables vers Excel ou d’autres destinations.

• Toujours dans le chapitre 2, refonte complète de la section dédiée au débogage des pro-grammes SAS.

• Introduction, dans le chapitre 5, d’une nouvelle section dédiée à l’optimisation des ressourcesmobilisées par vos programmes SAS.

• Mise à jour importante du chapitre 7, consacré aux procédures ODS Graphics, rendue néces-saire en raison des nouvelles possibilités offertes par la procédure PROC SGPLOT.

• Mise à jour importante du chapitre 8, dédié à ODS, afin d’effectuer une présentation com-plète d’ODS EXCEL, la nouvelle destination ODS introduite avec SAS 9.4M3.

• Introduction d’une nouvelle section dans le chapitre 9 traitant de la création et la gestion destables au moyen de PROC SQL.

Enfin, cette quatrième édition, en plus de couvrir le programme de la certification SAS Base Program-ming for SAS 9, couvre maintenant le programme de la certification Advanced Programming for SAS 9ainsi que celui de la certification SAS Certified Specialist: Base Programming Using SAS 9.4.

Progresser dans votre connaissance de SASCet ouvrage ne saurait prétendre à l’exhaustivité mais il aborde les problèmes les plus courants et vousdonne les outils qui vous aideront à les résoudre. Si les bases de chaque thème sont traitées le pluscomplètement possible, des extensions vous seront toujours proposées, et vous trouverez tout au longde ce livre de très nombreux liens vers des documents vous permettant d’approfondir vos connaissancessur des aspects plus avancés. Nous y faisons de très nombreuses références à l’aide SAS, et précisons enannexe comment utiliser les entrées de l’aide citée dans l’ouvrage.

Chaque chapitre commence par expliquer les concepts de base avant d’aborder des notions plus com-plexes. Ainsi, dans l’exposé d’une procédure, il y aura peu de rapport entre les résultats simples quenous proposerons dans un premier temps et les derniers résultats. Ces derniers résultats ne peuventcependant pas être compris sans les premières parties dans lesquelles nous exposons les principauxconcepts avant de les mettre en pratique.

C’est pour cette même raison que les chapitres consacrés à SQL et au langage macro sont présentés à lafin de l’ouvrage : ils mobilisent en effet l’ensemble des connaissances abordées dans les huit premierschapitres.

Nous traiterons peu les interfaces graphiques proposées par SAS qui permettent en quelques clics deréaliser un graphique, d’importer des données, de créer des tableaux, etc. Ces interfaces, certes convi-viales, ont pour principale fonction d’écrire le programme à votre place, mais elles ne vous dispensentabsolument pas de connaître les outils de la programmation SAS. En effet, ces interfaces ne peuventexploiter 100 % des outils de programmation offerts par les procédures qu’elles émulent. Si votredemande s’éloigne des cas standards et si vous n’avez aucune connaissance des outils de la programma-tion SAS, vous ne pourrez pas comprendre le programme créé par votre interface et le modifier demanière qu’il produise le résultat souhaité. C’est par une compréhension fine de la programmation

67631-SAS-INT.book Page 3 Thursday, February 28, 2019 7:10 PM

Page 22: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

SAS4

SAS que vous pourrez appréhender de manière rapide n’importe quelle interface proposée par SAS.C’est aussi grâce à la maîtrise de la programmation SAS que l’on exploite pleinement les fonctionna-lités offertes par ces interfaces et qui permettent de programmer plus rapidement et plus efficacementsous SAS.

Les Certifications SASCet ouvrage couvre l’intégralité du programme de la Certification Base Programming for SAS 9 telque présenté par l’ouvrage suivant :

SAS Certification prep guide, Base programming for SAS® 9, 4th edition, Cary, NC: SAS Institute Inc.,December 2017.

Cette certification sera progressivement remplacée au cours du premier semestre 2019 par la certifica-tion SAS Certified Specialist: Base Programming Using SAS® 9.4. Cet ouvrage couvre aussi le pro-gramme de cette certification tel que présenté par l’ouvrage suivant :

SAS® Certified Specialist Prep Guide: Base Programming Using SAS® 9.4, Cary, NC: SAS Institute Inc.,February 2019.

Il couvre enfin le programme de la certification Advanced Programming for SAS 9 tel que présentépar cet ouvrage :

SAS Certification prep guide, Advanced programming for SAS® 9, 4th edition, Cary, NC: SAS InstituteInc., December 2014.

Cette dernière certification sera remplacée, courant 2019-début 2020 par une nouvelle certification :SAS Certified Specialist: Advanced Programming Using SAS® 9.4. Au moment où est rédigée cetteintroduction, les informations à notre disposition concernant cette nouvelle certification nousindiquent que cet ouvrage couvre déjà le programme de celle-ci. Nous informerons nos lecteurs plusprécisément sur son contenu dès que possible via le site compagnon de cet ouvrage : www.sas-sr.com.

Ces programmes, établis par SAS en lien avec le monde professionnel, constituent le socle de connais-sances indispensables que tout utilisateur de SAS doit maîtriser pour utiliser efficacement le systèmetrès complet qu’est SAS.

Difficiles à obtenir parce qu’elles nécessitent une réelle compréhension du fonctionnement de Base SAS,ces certifications sont reconnues sur le plan international et sont particulièrement appréciées des recru-teurs. Elles témoignent d’une compétence rare et constituent un vrai plus dans un curriculum vitae.

En ce qui concerne la certification Base programming for SAS 9, l’épreuve, d’une durée de110 minutes (120 minutes pour la certification Advanced Programming for SAS 9), prend la formed’un QCM sur ordinateur comprenant entre 60 et 65 questions en anglais. Pour chaque question,4 réponses sont proposées. Si vous avez au moins 70 % de bonnes réponses, vous obtenez la certifica-tion Base Programming for SAS 9 (65 % pour la certification Advanced Programming for SAS 9).Pendant le temps de l’épreuve, vous ne disposez pas de SAS.

67631-SAS-INT.book Page 4 Thursday, February 28, 2019 7:10 PM

Page 23: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

Introduction 5

Vous ne pouvez passer l’examen de certification Advanced Programming for SAS 9 que si vous êtestitulaire de la certification Base Programming for SAS 9.

En ce qui concerne les nouvelles certifications SAS Certified Specialist, l’organisation de l’examen esttrès différente. En effet, vous disposez de SAS au travers d’une interface afin de répondre, dans un pre-mier temps, à une série de questions courtes basées sur des projets qui vous seront soumis. Dans unsecond temps, des questions plus classiques vous seront posées.

Si vous faites partie du monde professionnel, vous pouvez passer ces certifications dans un des centresde tests Pearson VUE. Le centre de formation SAS propose quant à lui une offre associant unejournée de préparation à la certification, un manuel d’entraînement et l’examen.

www.sas.com/fr_fr/training/home.html

Si vous êtes étudiant, le site compagnon de cet ouvrage, en association avec SAS France et son dépar-tement académique, peut vous aider à passer la certification Base Programming for SAS 9 et la certifi-cation SAS Certified Specialist: Base Programming Using SAS® 9.4.

www.sas.com/fr_fr/academic.html

Si votre formation est partenaire SAS et si elle présente un nombre suffisant de candidats, une sessionde certification peut être organisée dans votre établissement et un tarif spécial vous est proposé.

Vous aurez la possibilité, une dizaine de jours avant le passage de cet examen, d’accéder à un des maxi-quiz du site compagnon de cet ouvrage.

Ces maxi-quiz vous permettent d’évaluer votre niveau de connaissance et votre degré de préparationaux examens de certification Base. Un maxi-quiz comprend 70 questions en français extraites d’unebanque de questions couvrant l’intégralité des programmes de ces certifications. Vous disposerez dedeux heures pour répondre à ce questionnaire. Vous n’avez besoin que d’un ordinateur et d’uneconnexion à Internet pour y participer.

Attention, ces quiz sont des outils d’évaluation de vos connaissances et ne doivent pas être considéréscomme des outils de formation. Vous ne disposerez pas des réponses aux questions, mais un récapitu-latif par grands thèmes vous sera proposé : il vous permettra d’orienter vos dernières révisions et d’opti-miser ainsi vos chances d’obtenir votre certification.

L’accès à cette application est soumis à deux conditions : vous devez être étudiant et inscrit à unexamen de certification.

Depuis sa mise en place en avril 2009, plus de sept cents étudiants ont obtenu la certification BaseProgramming For SAS 9 après être passés par un maxi-quiz : alors, pourquoi pas vous ?

Afin de vous former à SAS, vous pouvez aussi vous inscrire au programme SCYP proposé par SAS.

www.sas.com/scyp

Le programme SCYP permet à tout étudiant d’accéder à un environnement gratuit et complet pour seformer en e-learning à la préparation des certifications SAS et de les passer.

Pour plus de renseignements sur les certifications SAS et les conditions d’accès aux maxi-quiz, vouspouvez consulter la section Certification du site compagnon de cet ouvrage. Vous trouverez aussi danscette section un premier mini-quiz de 10 questions.

67631-SAS-INT.book Page 5 Thursday, February 28, 2019 7:10 PM

Page 24: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

SAS6

En ce qui concerne les certifications Advanced, au moment où cette introduction est rédigée(février 2019), le site compagnon de cet ouvrage ne propose pas de maxi-quiz de préparation à ces exa-mens.

Enfin, quelques points au programme de la certification Advanced programming for SAS 9 n’ont paspu être intégrés au présent ouvrage et font l’objet de suppléments téléchargeables gratuitement sur lesite compagnon (section Certification).

Les pictogrammesAfin de vous aider dans votre apprentissage de SAS, nous avons défini des pictogrammes particuliersque vous rencontrerez dans le sommaire de chaque chapitre et en marge des intitulés de section :

: le point évoqué dans la section est au programme de la certification SAS Certified Specialist : BaseProgramming Using SAS 9.4.

: le point évoqué dans la section est au programme de la certification Base Programming for SAS 9.

: le point évoqué dans la section est au programme de la certification Advanced Programming forSAS 9.

: le point abordé dans la section constitue un approfondissement qui, bien que n’étant pas au pro-gramme d’une certification, constitue, à notre avis, une connaissance que doit avoir tout utilisateur deSAS.

Figure 0–1 Pictogrammes dans les sommaires de chapitres et dans le corps du texte

67631-SAS-INT.book Page 6 Thursday, February 28, 2019 7:10 PM

Page 25: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

Introduction 7

Ces approfondissements ne sont pas forcément traités de manière complète, mais vous trouverez tou-jours des références de documents qui doivent vous permettre d’aller plus loin si le sujet vous intéresseparticulièrement.

Dans les sommaires des chapitres, seuls les pictogrammes sont repris. Il vous indique que lasection contient des éléments au programme de ces certifications. Dans le chapitre lui-même, si unesection principale est marquée d’un pictogramme, toutes les sous-sections sont concernées par celui-ci.Si la section ne présente pas de pictogramme, c’est que les sous-sections sont de divers niveaux : chaquesous-section sera alors associée à un pictogramme. La figure 0-1 reprend et illustre notre propos.

Comment travailler avec cet ouvrageLe site compagnon de cet ouvrage est le complément indispensable à votre travail d’apprentissage deSAS. Vous retrouverez ce site à l’adresse suivante :

www.sas-sr.com

Ce site vous offre :

• un forum de discussions grâce auquel vous pouvez dialoguer directement avec l’auteur ;

• tous les programmes proposés dans l’ouvrage ;

• toutes les sorties générées par ces programmes, y compris celles qui ne sont pas reproduitesdans cet ouvrage ;

• tous les fichiers nécessaires à la reproduction des exemples et aux exercices mis à disposition ;

• les solutions aux exercices donnés ;

• des compléments à cet ouvrage ;

• l’ensemble des liens vers des sites Internet proposés dans cet ouvrage ;

• les liens vers l’aide de SAS en ligne pour toutes les entrées citées dans cet ouvrage ;

• l’ensemble des liens vers les documents cités dans l’ouvrage et qui doivent vous permettred’approfondir certains points ;

• une section erratum puisque, malgré le soin apporté à la rédaction de cet ouvrage, il y auratoujours des coquilles…

Tout au long des chapitres, des exercices sont proposés. N’attendez pas d’avoir lu l’intégralité d’un cha-pitre pour les effectuer : ils sont indispensables à la compréhension des notions abordées et constituentgénéralement des passerelles entre les différents concepts.

Ne consultez les solutions qu’au terme d’une réelle réflexion ! C’est en commettant des erreurs quevous progresserez et que vous affinerez vos techniques de programmation.

Nous vous invitons à reproduire l’intégralité des nombreux exemples de programmation afin de biencomprendre l’effet de chacune des instructions et options utilisées. N’hésitez pas à en retirer certaineset à en introduire d’autres pour bien saisir leur impact.

Même si vous connaissez déjà un peu SAS, commencez votre lecture par le chapitre 1 et consacrez letemps nécessaire à la compréhension de chaque concept exposé. La profonde compréhension des

67631-SAS-INT.book Page 7 Thursday, February 28, 2019 7:10 PM

Page 26: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

SAS8

concepts est indispensable à une maîtrise de SAS. Si vous ne les comprenez pas, vous ne pourrez rienapprendre d’un programme offrant plus de cinq instructions. Vous maîtriserez les concepts lorsqu’avantmême d’exécuter un programme vous aurez une idée précise de la structure du résultat produit.

Disposer du système SASSi vous êtes actuellement dans une université ou une école, il se peut que la formation que vous suivez soitinscrite au programme académique de SAS1. L’inscription à ce programme permet à votre formation debénéficier d’un certain nombre de licences SAS à un coût tout à fait intéressant ; elle autorise l’installationsur votre ordinateur personnel de SAS pendant la durée de votre formation initiale contre une inscriptionau Club Academic de SAS et la signature d’un contrat de licence. Pour tous renseignements sur le pro-gramme académique de SAS, vous pouvez consulter le site suivant : www.sas.com/fr_fr/academic.html.

Un contrat de licence spécial est de plus proposé aux étudiants qui souhaitent disposer de SAS pendantleur stage.

www.sas.com/fr_fr/academic/form-cpps/register.html

Pour toute personne désirant se former sous SAS, il existe, depuis juillet 2014, une version entièrementgratuite du progiciel SAS : SAS University Edition.

Cette version de SAS inclut SAS Studio, Base SAS, SAS/STAT, SAS/IML, SAS/ACCESS et uncertain nombre de procédures appartenant au module SAS/ETS. Elle est le compagnon indispensablede toute personne souhaitant se former sous SAS.

www.sas.com/fr_fr/software/university-edition.html

Les différentes plates-formes de SASLe progiciel SAS, pour ce qui concerne la programmation, peut être présent sur votre ordinateur sousdifférentes formes :

• SAS Windowing Environment (ou Display Manager)

• SAS Enterprise Guide

• SAS Studio

• SAS University Edition

La licence proposée dans le cadre des partenariats que SAS France a avec un grand nombre de forma-tions en France inclut les trois premières plates-formes.

Ces différentes interfaces ne doivent pas être comprises comme des progiciels différents. Certainesfonctionnalités leur sont propres mais les fondamentaux de la programmation, objet de cet ouvrage,sont les mêmes. Il n’y a, derrière ces interfaces, qu’un seul et même moteur : SAS V9.

1. Environ 150 établissements et 300 diplômes sont actuellement partenaire SAS au travers du programme académique de SAS.

67631-SAS-INT.book Page 8 Thursday, February 28, 2019 7:10 PM

Page 27: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

Introduction 9

Tout au long de cet ouvrage, nous consacrerons certains développements à telle ou telle plate-formeafin d’en présenter certaines particularités dans le cadre qui est le nôtre. Il ne s’agit en aucun cas, sur-tout si vous débutez sous SAS, de vous former simultanément sur toutes les plates-formes SAS. Choi-sissez une plate-forme, formez-vous à la programmation SAS et, une fois ceci fait, si vous devezchanger de plate-forme, vous verrez que l’adaptation se fait en quelques heures.

Les versions de SASLes versions de SAS Windowing Environment, SAS Enterprise Guide, SAS Studio et SAS Univer-sity Edition à notre disposition pour préparer cet ouvrage faisaient tous appel au moteur SAS 9.4M5.

Seul le chapitre 7 consacré à la production de graphiques peut vous poser des difficultés si vous utilisezdes versions plus anciennes de SAS.

Le système SAS est conçu de telle manière qu’un programme qui fonctionne dans une version donnéefonctionnera aussi dans les versions ultérieures de SAS. Certaines fonctions anciennes, remplacéesdepuis par des fonctions plus puissantes, même si elles ne sont plus documentées, continuent et conti-nueront à pouvoir être utilisées. Le passage d’une version à une autre n’est donc pas synonyme d’uncomplet réapprentissage de SAS : ce que vous apprenez aujourd’hui sera encore valable demain.

SAS est loué par votre employeur, votre école ou votre université : il n’y a pas de coût supplémentaire demandéau client SAS lorsqu’une nouvelle version apparaît. Seules les contraintes propres aux clients (version de l’OSou d’outils tiers comme MS Office) peuvent expliquer le maintien d’une version relativement ancienne deSAS. Vous comprenez donc que différentes versions de SAS peuvent coexister à un moment donné.

SAS 9.2 a commencé à être déployé et distribué au printemps 2008. Son déploiement complet s’est ter-miné avec la livraison de la révision 3 (SAS 9.2 TS2M2) en avril 2010. La distribution de SAS 9.3 adébuté en juillet 2011 et celle de SAS 9.4 en juillet 2013. SAS 9.4M5 – version de SAS principalementutilisée lors de la rédaction de cet ouvrage – est la sixième évolution de SAS 9.4.

SAS Windows, Unix, z/OSCet ouvrage traitera exclusivement de SAS sous environnement Microsoft Windows (de XP àWindows 10)2. En effet, si vous débutez sous SAS, il y a de très fortes chances pour que la version deSAS à votre disposition soit une version Microsoft Windows. Si, par la suite, vous êtes appelé à tra-vailler dans un autre environnement que Windows, vous découvrirez que les différences entre votreSAS Windows et SAS dans un autre environnement résident dans :

• la façon de démarrer une session SAS ;

2. Veuillez noter que les versions de SAS sont conçues pour un fonctionnement optimal sous les éditions professionnelles du sys-tème d’exploitation Windows. Il n’est pas conseillé d’installer SAS sur des ordinateurs disposant d’une édition familiale de Win-dows, même si c’est notamment possible avec la licence proposée aux formations partenaire académique de SAS.

67631-SAS-INT.book Page 9 Thursday, February 28, 2019 7:10 PM

Page 28: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

SAS10

• l’adressage des fichiers externes à SAS ;

• l’existence de quelques options spécifiques à votre environnement ;

• la présentation différente des fenêtres du progiciel.

Mises à part ces différences, les fondamentaux de la programmation SAS sont les mêmes quel que soitvotre système d’exploitation.

Conventions typographiquesVous pouvez employer minuscules et majuscules dans les programmes (instructions, options, noms devariables, noms de tables, etc.) que vous écrivez dans SAS. Seules les valeurs prises par les modalités desvariables caractères doivent respecter la casse. Nous avons cependant utilisé dans cet ouvrage les majusculeset les minuscules afin de vous aider au mieux à comprendre les nombreux programmes proposés.

Tous les mots clés propres au langage SAS apparaissent en majuscules dans les programmes et dans lecorps du texte. Les mots écrits en gras dans les programmes sont les instructions qui commencent etterminent une étape (ici, DATA et RUN). Les constantes numériques peuvent aussi apparaître engras. À l’intérieur du programme, les instructions, fonctions et options propres au langage SAS appa-raissent en majuscules (SET, IF, THEN, DO, RANUNI, etc.). Les FORMAT et les INFORMATsont aussi présentés en majuscules. Les noms des tables et des variables dans un programme sont systé-matiquement écrits en minuscules.

Dans le corps du texte, les noms des instructions, fonctions et options, comme ceux des variables, destables, des FORMAT, des INFORMAT, etc., seront systématiquement repris en majuscules.

Les programmes seront indentés afin de vous permettre de mieux suivre et de mieux comprendre leurfinalité. Il y a toujours au moins un niveau d’indentation, parfois plusieurs. Dans le cas du programmeprésenté ici, pour l’instruction ATTRIB, nous indentons une seconde fois pour signifier au lecteur quel’option LABEL est un élément de l’instruction ATTRIB. Nous indentons une seconde fois aprèsl’instruction IF pour indiquer au lecteur que les deux instructions permettant de définir les variablesX7 et X9 ne s’appliquent pas à toutes les observations (cette construction est en fait conditionnée aurespect de la condition énoncée après l’instruction IF). L’instruction CARDS et les données qui lasuivent ne seront pas indentées.

DATA test2; SET test; FORMAT date DDMMYY.; ATTRIB x FORMAT=8.4 LABEL="Variable analysée"; IF x<15 THEN DO; x7=RANUNI(234); x9=x2+x12; END;RUN;

67631-SAS-INT.book Page 10 Thursday, February 28, 2019 7:10 PM

Page 29: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

Introduction 11

Il n’est pas forcément nécessaire d’organiser les programmes de cette manière, mais au fur et à mesureque les programmes que vous rédigerez s’allongeront, vous constaterez qu’une telle organisation facilitegrandement la compréhension.

À l’exception de certains programmes très courts, les programmes proposés dans l’ouvrage sont numé-rotés, ce qui vous permet de les retrouver facilement sur le site compagnon.

Présentation succincte d’autres modules de SASNous n’exposons ci-après que les modules principaux du système SAS – il en existe bien d’autres. Voustrouverez des descriptifs complets des produits et solutions proposés par le système SAS sur le site deSAS Institute :

www.sas.com/en_us/software/all-products.html

Un peu d’histoire

Le logiciel SAS est le fruit du travail d’un groupe de chercheurs de la North Carolina State University qui a commencéen 1966. En 1967, James H. Goodnight, actuel CEO de SAS Institute, rejoint le projet et travaille à la stabilité du logicielet à la création des procédures. À partir de 1971, le logiciel connaît un grand succès aussi bien auprès de la communautéuniversitaire qu’auprès des industries pharmaceutique et agricole, en raison notamment de sa capacité à gérer d’unepart les données manquantes, d’autre part des tables de très grandes dimensions.En 1976, l’entreprise SAS Institute est créée notamment par James H. Goodnight et John P. Sall. SAS s’est depuis imposécomme le leader mondial de l’informatique décisionnelle et des solutions de business analytics. Il est aujourd’hui présentdans 96 des 100 premières entreprises du classement Fortune Global 500® et sur près de 83 000 sites clients répartisdans 148 pays. SAS Institute a réalisé un chiffre d’affaires de 3,24 milliards de dollars en 2017, dont 26 % ont été réin-vestis en recherche et développement.SAS signifiait à l’origine Statistical Analysis System. La signification de l’acronyme a depuis été perdue, marquant ainsi lefait que SAS couvre toute la chaîne du traitement de l’information, du traitement des données jusqu’à la restitutionmétier, l’analytique étant au cœur de chaque profession.Les personnes intéressées par l’histoire de SAS pourront consulter la page suivante :https://www.sas.com/fr_fr/company-information/profile.html

Le module Base SAS

Le système SAS est composé de différents modules ayant tous une fonctionnalité propre. Le module Base SAS constituele cœur de votre système SAS – il est nécessaire au fonctionnement des autres produits SAS et c’est ce module que nousétudions dans le présent ouvrage.Il permet l’exécution des étapes DATA, du langage macro, de PROC SQL, des outils offerts par ODS (Output DeliverySystem), ainsi que des analyses statistiques simples ou des procédures utilitaires comme PROC CONTENTS, PROC PRINTou PROC SORT. Depuis SAS 9.3, Base SAS intègre aussi les outils de production de graphiques offerts par les procéduresODS Graphics. Dans SAS 9.2, ces procédures faisaient partie du module SAS/GRAPH.Le langage SAS est un langage dit de quatrième génération (L4G). Il s’agit, comme nous allons le découvrir au travers deces pages, d’un langage peu technique, très proche de la syntaxe naturelle.

67631-SAS-INT.book Page 11 Thursday, February 28, 2019 7:10 PM

Page 30: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

SAS12

Un certain nombre de modules se caractérisent par une mise à disposition de procédures spécifiques.La présence du signe / indique qu’il s’agit d’un module qui dispose de sa propre programmation. Cesmodules peuvent être embarqués dans des interfaces utilisateurs spécifiques émulant du code SAS.

Un premier ensemble est dédié à l’analytique. Il couvre bien plus que la statistique et comprend, entreautres, les modules suivants :

SAS/STAT : outils dédiés à l’analyse statistique (inférentielle, descriptive) et aux calculs probabilistescomme l’analyse de variance, les modèles mixtes, les différentes familles de régressions, l’analyse multi-variée, l’analyse bayésienne, la statistique non paramétrique, les modèles de survie, les outils de modé-lisation propres aux données massives… Pour une description exhaustive, vous pouvez consulter lapage suivante :

www.sas.com/en_us/software/analytics/stat.html

SAS/ETS (Econometrics and Times Series) : outils destinés à l’économétrie des séries temporelles et à laprévision (ARIMA, VARMAX, TIMESERIES…).

www.sas.com/en_us/software/analytics/ets.html

Ces deux modules proposent un ensemble de procédures dites High-Performance. La technologie SASHP permet depuis 2010 la combinaison de trois technologies : In-Memory, In-Database et Grid. En2013 sortait la troisième génération de la plate-forme HP en MPP (Massively Parallel Processing). Lesprocédures HP s’exécutent sur des architectures hautes performances spécifiques mais aussi sur desimples PC. Leur syntaxe est similaire aux processus de référence. On transforme donc un programmeSAS classique en ajoutant HP devant le nom des procédures. D’un point de vue pratique, sur unsimple PC avec plusieurs cœurs, la procédure HP utilisera simultanément tous les cœurs.

www.sas.com/en_us/software/high-performance-analytics.html

SAS/IML (Interactive Matrix Language) correspond au langage matriciel. Véritable « laboratoire mathé-matique de SAS », il permet de concevoir vos propres algorithmes selon une approche statistiques-mathématiques et d’exploiter vos calculs vectoriels et matriciels en recourant à de nombreuses fonctions etroutines (optimisation non linéaire, filtre de Kalman, transformées de Fourier…) pour les appliquerdirectement en production sur vos données. IML est un langage de prototypage qui vous permet donc deconcevoir vos propres algorithmes, selon une approche plus proche de l’algèbre linéaire. IML est égale-ment le langage de choix pour communiquer avec d’autres environnements (Matlab, R…).

www.sas.com/en_us/software/iml.html

SAS/OR (Operational Research) regroupe des procédures avancées dédiées à la recherche opération-nelle traitant de l’optimisation mathématique (programmation linéaire, non linéaire, variables entièreset/ou mixtes), de métaheuristique (algorithmes génétiques) comme de la résolution d’optimisation parla théorie des graphes.

www.sas.com/en_us/software/or.html

Un deuxième ensemble de modules est dédié à l’accès aux données et à leur gestion. Il comprend lesmodules suivants :

SAS/ACCESS donne accès aux données produites par d’autres logiciels, de les exploiter dans SAS etmême de créer à partir de SAS des fichiers dans des formats externes. Ses différents modules per-

67631-SAS-INT.book Page 12 Thursday, February 28, 2019 7:10 PM

Page 31: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

Introduction 13

mettent une intégration à différents Systèmes de gestion de base de données relationnelles (SGBDR)ou NoSQL du marché et à certains progiciels de gestion intégrée (PGI ou ERP – Enterprise ResourcePlanning). Voici une liste d’exemples non exhaustive : SAS/ACCESS Interface to SAP BW, to Tera-data, to DB2, to MySQL, to Haddop, to ODBC, to OLE DB, to ORACLE, to PC Files (MicrosoftExcel, Microsoft Access, Lotus 1-2-3, DBF), to PeopleSoft, etc.

www.sas.com/en_us/software/access.html

SAS/CONNECT permet de connecter des ordinateurs sur lesquels est installé SAS. Vous partagerezau moyen de cette application vos tables de données ; des programmes écrits sur un ordinateur pour-ront être exécutés sur un second. Les applications de Grid Computing de SAS nécessitent SAS/CONNECT.

http://support.sas.com/software/products/connect_share/

D’autres modules mettent à votre disposition des interfaces graphiques :

SAS Enterprise Miner est l’interface historique de SAS dédiée au data mining depuis 1997. SASconsidère le data mining comme une discipline à part entière, et notons ici que les algorithmes embar-qués sont bien différents de ceux plus classiquement utilisés en statistique. Cette interface permet uneindustrialisation de l’exploitation intensive de gigantesques bases de données. Il s’agit donc d’une inter-face experte, qui va bien au-delà de la statistique, aux croisements du statistical learning et du machinelearning. Les procédures embarquées sous SAS EM sont spécifiques à la discipline (DMREG : DataMining Regressions), ce qui les distingue d’une approche statistique « classique ». La licence proposéepar SAS aux formations avec qui elle est en partenariat inclut la version stand alone, qui peut être ins-tallée sur un simple PC : SAS Enterprise Miner For Desktop.

www.sas.com/en_us/software/enterprise-miner.html

SAS Data Integration Studio est une interface cliente Java de la plate-forme décisionnelle SAS dédiéeà l’ETL (Extract, Transform, Load). Elle fait notamment partie des packages « SAS Data IntegrationServer » et « SAS Enterprise Data Integration Server ».

http://support.sas.com/software/products/etls/

SAS Forecast Server est une application d’aide à la production de prévisions qui existe aussi en versionstand alone : SAS Forecast for Desktop.

https://www.sas.com/en_us/software/forecast-server.html

SAS/IML Studio est une interface experte avancée pour le statisticien maîtrisant l’exploration gra-phique comme la programmation SAS. Elle permet de recourir à la statistique exploratoire tout en seconcentrant sur le développement de nouveaux algorithmes (approche « statistiques-mathématiques »)et nécessite la maîtrise de la programmation SAS/STAT et SAS/IML. SAS/IML Studio embarque lelangage objet IML+. Historiquement, SAS/IML Studio est le résultat de la fusion de SAS/Insight etd’IML Workshop.

http://support.sas.com/rnd/app/studio/index.html

Enfin, citons :

SAS NLS (National Language Support), qui n’est pas un module en tant que tel mais une applicationqui permet à SAS de fonctionner au mieux sur des systèmes non américains.

67631-SAS-INT.book Page 13 Thursday, February 28, 2019 7:10 PM

Page 32: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

SAS Viya

La plate-forme SAS Viya est une nouvelle architecture de SAS dédiée à l’intégration et la gestion des données, l’analysehaute performance, le machine learning, l’optimisation, la prévision, la gestion de l’industrialisation des modèles et à lavisualisation. Lancée au SAS Global Forum d’avril 2016, elle complète la plate-forme SAS 9.4 mais ne la remplace pas.Cette plate-forme, ouverte et adaptée au Cloud Computing, autorise le calcul partagé en mémoire. Il s’agit donc d’uneplate-forme particulièrement flexible et puissante.Dans l’ADN de SAS, on retrouve la rigueur scientifique au travers notamment d’une documentation précise. L’ouvertureest aussi un des piliers de SAS : Viya ne déroge pas à cette règle puisque cette plate-forme propose une intégration plusdirecte avec des langages comme Python, R ou Lua.C’est la seconde fois depuis 1966 que SAS est redéveloppé complètement. En 1985, SAS, basé à l’époque sur du Cobol,du Fortran et du PL/1, a été redéveloppé en C. Cette fois, SAS Viya est une toute nouvelle architecture en micro-serviceafin d’être plus facilement déployable dans le nuage public et privé.SAS Viya propose un ensemble de solutions comme SAS Data Preparation, SAS Data Quality, SAS Decision Manager, SASEconometric, SAS Visual Investigator, SAS Model Manager, SAS Optimization, SAS Visual Analytics, SAS Visual Statistics,SAS Visual Data Mining and Machine Learning, SAS Visual Forecasting et SAS Workflow Manager.www.sas.com/fr_fr/software/viya.htmlComme toujours, le code SAS n’est pas loin et dès que l’on souhaite des choses spécifiques, il est nécessaire de revenirpar exemple dans SAS Studio. Coder en SAS sur Viya présente pour le moment un certain nombre de spécificités mais lesfondamentaux restent.

67631-SAS-INT.book Page 14 Thursday, February 28, 2019 7:10 PM

SAS14

Page 33: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

Au sommaire de ce chapitre :1.1 Premiers pas avec SAS1.2 Deux étapes distinctes : DATA et PROC1.3 Les tables1.4 Les bibliothèques1.5 Créer une table1.6 Les sorties1.7 Compréhension approfondie du cas simple1.8 Introduction de valeurs manquantes

Ce premier chapitre a pour objectif de vous aider dans vos débuts avec SAS. Il s’agit plus particu-lièrement de vous présenter l’environnement de développement SAS, certaines caractéristiquespropres aux différentes plates-formes et de vous apprendre à créer vos premières tables.

1.1 Premiers pas avec SASLe progiciel SAS peut être présent sur votre ordinateur sous de multiples formes. Si vous êtes étu-diant, inscrit dans une formation partenaire de SAS Académique, vous pouvez disposer, au travers

1Faire connaissance avec

votre environnement SAS

67631-SAS-INT.book Page 15 Thursday, February 28, 2019 7:10 PM

Page 34: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

SAS16

d’une licence gratuite, de SAS Windowing Environment, de SAS Enterprise Guide et de SAS Studio.Alternativement, l’éditeur met à disposition de toute personne souhaitant se former une version gra-tuite de son progiciel, SAS University Edition, téléchargeable depuis le site de SAS.

Ces différentes formes ne doivent pas être comprises comme des progiciels différents. Il existe certes desfonctionnalités qui varient selon l’interface, mais les fondamentaux de la programmation, objet de cetouvrage, sont les mêmes. Derrière ces différentes interfaces, il n’y a qu’un seul et même moteur : SAS.

1.1.1 SAS Windowing EnvironmentSi le progiciel est installé sur votre ordinateur, sous Windows, vous devriez voir apparaître une desdeux icônes suivantes dans le dossier SAS (menu Démarrer, puis dossier SAS) :

Vous observerez la première icône si vous disposez de SAS Windowing Environment 9.4 (SAS 9.4dans la suite de cet ouvrage). La seconde est caractéristique des versions 9.3 et antérieures. Au démar-rage de SAS, l’écran de la figure 1-1 apparaît.

Figure 1–1 Écran d’accueil SAS 9.4 Windows

67631-SAS-INT.book Page 16 Thursday, February 28, 2019 7:10 PM

Page 35: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

Faire connaissance avec votre environnement SASCHAPITRE 1

17

Cet écran, typique des versions 8 et 9 de SAS Windows, est désigné sous le terme de Display ManagerSystem (DMS). Il se compose de six éléments principaux que l’on peut présenter en deux sous-ensembles.

Un premier sous-ensemble est dédié à l’aide au développement et comprend :

• La fenêtre Éditeur. Elle permet de saisir les programmes et d’en demander l’exécution. Dansl’éditeur amélioré qui s’affiche à l’écran, les instructions que vous saisissez s’affichent endiverses couleurs, dont la signification sera précisée plus loin dans ce chapitre.

• La fenêtre Journal. C’est là que s’affichent les commentaires de SAS sur les programmes quevous exécuterez. Il s’agit d’une fenêtre extrêmement importante puisque c’est en lisant lesinformations qui y sont données que vous comprendrez ce que SAS a fait de vos programmes.

• La fenêtre Sortie. Si vous disposez de SAS 9.2 ou d’une version antérieure, les sorties deman-dées par vos programmes seront dirigées par défaut vers cette fenêtre.

• La fenêtre Results viewer (absente de la figure 1-1 et à l’ouverture de votre session). DepuisSAS 9.3, les sorties demandées par vos programmes sont dirigées par défaut vers cette fenêtreau format HTML.

Un second sous-ensemble est dédié à la gestion du développement :

• L’onglet Explorateur. Comme l’explorateur de votre ordinateur, cet onglet vous permet de navi-guer dans vos diverses bibliothèques (voir section 1.4) et votre poste de travail. Vous retrouvezdans Dossiers favoris les dossiers Mes documents et le Bureau. Dans Raccourcis de fichiers, vouspouvez créer des raccourcis vers différents fichiers de votre disque dur. N’hésitez pas à person-naliser le contenu de ces dossiers de façon à organiser au mieux votre travail.

• L’onglet Résultats. Il permet de naviguer entre les divers résultats qui s’affichent et d’effacercertaines sorties pour ne conserver que les plus utiles.

D’autres fenêtres peuvent apparaître, comme VIEWTABLE (voir section 1.3), FSLIST (voir section 2.3.1)ou Options du système SAS (voir section 5.6.3).

En fonction de la fenêtre active (celle qui s’affiche avec les outils de gestion de fenêtre – voir figure 1-1),le menu peut différer de celui représenté à la figure 1-2 (fenêtre Éditeur active). En effet, SAS 9.4 fonc-tionne en mode contextuel : les menus et barres d’outils sont ainsi adaptés et vous offrent les outils dontvous pourriez avoir besoin en fonction de la fenêtre active.

Voici les fonctionnalités des différents items du menu lorsque la fenêtre Éditeur est active :

• Fichier permet d’ouvrir ou de sauvegarder un programme, d’importer ou d’exporter une table,d’imprimer ou de terminer une session SAS.

• Édition propose les commandes d’édition habituelles : Annuler/Rétablir, Copier, Coller, Recher-cher, Remplacer, Sélectionner tout, Effacer la sélection ou la fenêtre. Ce menu permet égalementd’afficher les programmes dans leur forme réduite ou développée.

Figure 1–2 SAS 9.4 : le menu, la fenêtre Commande et la barre d’outils (fenêtre Éditeur active)

67631-SAS-INT.book Page 17 Thursday, February 28, 2019 7:10 PM

Page 36: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

SAS18

• Affichage sert à naviguer entre les diverses fenêtres, en ouvrir de nouvelles, rouvrir des fenêtresque vous aviez fermées.

• Outils donne l’accès à différentes tâches (requêtes, éditeur de tables, de graphiques ou de rap-ports). C’est dans ce menu que vous accédez aux commandes de personnalisation de la barred’outils et à différentes options propres à cet environnement.

• Exécuter vous permet de demander l’exécution de votre programme et de vous connecter sivotre SAS fonctionne en mode client-serveur.

• Solutions donne accès à un ensemble d’outils d’analyse (assez anciens et peu utilisés).

• Fenêtre propose un ensemble d’options relatives à l’organisation des fenêtres sur votre écran.À partir de ce menu, vous pouvez aussi passer d’une fenêtre à une autre.

• Aide fournit des renseignements sur le fonctionnement et les commandes de SAS.

Dans la barre d’outils, vous disposez d’une fenêtre Commande que vous utiliserez par exemple pouractiver l’éditeur FSLIST (voir section 2.3.1). Les icônes situées à droite de cette zone de commande sont lesoutils dont vous disposez quand la fenêtre Éditeur est active. Ils ont respectivement les fonctionssuivantes : Nouveau, Ouvrir, Enregistrer, Imprimer, Aperçu avant impression, Couper, Copier, Coller,Annuler, Nouvelle bibliothèque, Explorateur SAS, Soumettre, Supprimer tout, Interrompre, Aide SAS.Une info-bulle vous indique la fonction de l’icône lorsque vous passez le pointeur de votre souris dessus.

1.1.2 SAS Enterprise GuideSAS Enterprise Guide (SAS EG dans la suite de cet ouvrage) est une interface de SAS disponibleuniquement sous Windows, au moyen de laquelle vous pouvez demander l’exécution de programmespar un moteur SAS présent soit en local, soit sur un serveur distant (Windows ou Unix). Vous en dis-posez si, dans vos applications SAS, vous observez l’icône suivante, commune à toutes les versions deSAS EG depuis la 4.2 :

Lorsque vous démarrez SAS EG, la fenêtre suivante apparaît :

Figure 1–3Ouverture de SAS EG

67631-SAS-INT.book Page 18 Thursday, February 28, 2019 7:10 PM

Page 37: S. Ringuedé Sébastien Ringuedé Préface de Christophe Bonnefoux · 2019-04-19 · SAS CERTIFIED SPECIALIST: BASE ... ˜SAS • Maîtriser les procédures de base • Produire des

Faire connaissance avec votre environnement SASCHAPITRE 1

19

Sélectionnez Nouveau programme SAS et vous verrez alors devant vous l’écran reproduit à la figure 1-4.

L’environnement se compose de trois zones :

• Dans l’Arborescence du projet s’afficheront les flux de processus, les données, les différentestâches, les programmes et les notes de votre projet.

• Dans l’Espace de travail s’afficheront les données, les programmes, le journal, les résultats etvos flux de processus. La fenêtre Programme qui apparaît dans l’espace de travail est équiva-lente à la fenêtre Éditeur de SAS 9.4.

• Le volet Ressources vous permet d’accéder aux tâches, aux dossiers, à la liste des serveurs (ongletactif à la figure 1-4), au gestionnaire d’invites et à l’historique des explorations de données.

Vous pouvez demander l’affichage de deux volets supplémentaires :

• L’État des tâches affiche l’état d’avancement, la position dans la file d’attente et le serveur surlequel sont exécutées les tâches en cours.

• Le Journal du projet affiche un journal agrégé de l’intégralité du projet.

De plus, vous disposez d’une barre d’outils par défaut (figure 1-5), dans laquelle figurent les fonctionsélémentaires. Une info-bulle vous précise l’action de chacun des boutons.

Figure 1–4 SAS EG

67631-SAS-INT.book Page 19 Thursday, February 28, 2019 7:10 PM