SAS®
Introduction au décisionnel : du data management au reporting
Sébastien Ringuedé
Christophe Bonnefoux
Eyrolles
Introduction1
Présentation de l'ouvrage
1
Les nouveautés de la présente édition
2
Progresser dans votre connaissance de SAS
3
Les Certifications SAS
4
Les pictogrammes
6
Comment travailler avec cet ouvrage
7
Disposer du système SAS
8
Les différentes plates-formes de SAS
8
Les versions de SAS
9
SAS Windows, Unix, z/OS
9
Conventions typographiques
10
Présentation succincte d'autres modules de SAS
11
Chapitre 1
Faire connaissance avec votre environnement SAS15
1.1 Premiers pas avec SAS
15
1.1.1 SAS Windowing Environment16
1.1.2 SAS Enterprise Guide18
1.1.3 SAS Studio21
1.1.4 SAS University Edition24
1.2 Deux étapes distinctes : DATA et PROC
24
1.3 Les tables
27
1.4 Les bibliothèques
30
1.5 Créer une table
34
1.5.1 Notre première table34
1.5.2 L'éditeur SAS : une aide à la programmation39
1.5.3 Demander l'exécution d'un programme41
1.5.4 Lire le journal42
1.5.5 Examiner la table créée45
1.6 Les sorties
47
1.6.1 Les destinations de vos sorties48
1.6.2 Les sorties de SAS EG/Studio/UE50
1.6.3 Options et Title51
1.7 Compréhension approfondie du cas simple
52
1.8 Introduction de valeurs manquantes
55
Chapitre 2
Aller plus loin dans la création de tables SAS59
2.1 La création d'une table SAS à partir d'un fichier de données brutes
60
2.1.1 Principes60
2.1.2 L'input Buffer63
2.1.3 Le codage des caractères64
2.2 Autres indicateurs de séparation des champs
66
2.2.1 Champs séparés par un caractère quelconque66
2.2.2 Champs séparés par un point-virgule68
2.2.3 Champs séparés par des tabulations68
2.3. Les enregistrements formatés en colonnes
70
2.3.1 Cas général70
2.3.2 Le pointeur +X73
2.3.3 Le pointeur @X 74
2.3.4 Une seconde application de @X : @« texte »75
2.3.5 Cas particulier : le dernier champ est de longueur variable76
2.3.6 SAS UE et les enregistrements formatés en colonnes77
2.4 Plusieurs enregistrements pour construire une observation
82
2.4.1 N enregistrements pour une observation82
2.4.2 Un enregistrement, plusieurs observations : @@84
2.4.3 Les données hiérarchisées : @86
2.4.4 Champs multiples pour un même identifiant89
2.5 La gestion des valeurs manquantes
92
2.5.1 L'instruction globale Missing92
2.5.2 Les valeurs manquantes non notées par un quelconque caractère94
2.6 Les INFORMAT
95
2.6.1 Les INFORMAT des variables caractères95
2.6.2 Autres INFORMAT caractères98
2.6.3 Longueur des variables caractères99
2.6.4 Les INFORMAT des variables numériques99
2.6.5 Des variables numériques particulières : les dates et heures103
2.6.6 Créons notre propre INFORMAT !110
2.7 SAS, Excel, importation et exportation de tables
113
2.7.1 La procédure Proc import114
2.7.2 Proc import et l'importation de fichiers texte120
2.7.3 Libname XLSX et PCFILES121
2.7.4 Les assistants d'importation125
2.7.5 Importer un fichier Excel via un fichier CSV133
2.7.6 Explorer vos tables SAS134
2.7.7 La création de fichier TXT via les instructions FILE et PUT139
2.8 Le débogage des programmes de création de table
141
2.8.1 Regarder et comprendre votre fichier141
2.8.2 Lire la fenêtre Journal142
2.8.3 Faire parler votre journal146
2.8.4 Examiner votre table148
Chapitre 3
Modifier les tables151
3.1 L'exécution par SAS de vos programmes
152
3.1.1 La structuration du PDV153
3.1.2 Mode de structuration du PDV et variables caractères155
3.1.3 La longueur des variables numériques157
3.1.4 Détermination du type d'une variable créée par un programme158
3.1.5 L'attribution des modalités160
3.1.6 L'instruction OUTPUT163
3.1.7 Le contrôle des tables de sortie avec l'instruction OUTPUT165
3.1.8 L'instruction RETURN166
3.2 Les opérateurs et les fonctions usuelles de construction et de transformation des variables
167
3.2.1 Les opérateurs167
3.2.2 Les fonctions numériques usuelles168
3.2.3 Les fonctions statistiques168
3.2.4 Les générateurs de nombres aléatoires170
3.2.5 Les fonctions propres aux dates et aux heures171
3.2.6 D'autres fonctions utiles176
3.2.7 Les fonctions sur variables caractères178
3.2.8 La création d'une fonction avec PROC FCMP188
3.3 Construire une table SAS « allégée »
190
3.3.1 Effacer ou conserver uniquement certaines variables190
3.3.2 Écarter ou ne conserver que certaines observations : If, Where, et Select191
3.3.3 Sélectionner des observations avec l'option Point =196
3.4 Construire de nouvelles variables au sein d'une table
197
3.4.1 La construction sans condition197
3.4.2 La construction sous conditions200
3.5 Les boucles do
205
3.5.1 Le do simple205
3.5.2 Le do itératif206
3.5.3 Les boucles do until207
3.5.4 Les boucles do while207
3.5.5 Les boucles do sur array208
3.6 Donner une mémoire à SAS
217
3.6.1 L'instruction Retain217
3.6.2 Les marqueurs First. et Last221
3.6.3 Faire référence à des valeurs passées223
3.7 Trois procédures pour modifier vos tables
225
3.7.1 Proc Sort225
3.7.2 Proc Rank228
3.7.3 Proc Transpose231
Chapitre 4
Combiner les tables SAS235
4.1 Concaténer des tables
236
4.1.1 Ajouter des observations avec un SET impliquant deux tables236
4.1.2 Proc Append239
4.2 Fusionner des tables : MERGE
240
4.2.1 Merge - Cas standard241
4.2.2 Clés multiples243
4.2.3 Merge one to many243
4.2.4 Un outil pratique avec Merge : les marqueurs IN244
4.2.5 Quelques sources de problèmes avec Merge246
4.3 Mettre à jour une table : Update
250
4.4 Techniques avancées de fusion de tables
251
4.4.1 Une utilisation inattendue des Format252
4.4.2 Les tables de hachage253
Chapitre 5
Travailler efficacement sous SAS263
5.1 Accéder aux métadonnées d'une table
264
5.1.1 La procédure Proc contents264
5.1.2 Accéder aux vues dictionnaires266
5.2 Les Label
270
5.2.1 Les Label de variables270
5.2.2 Les Label de tables271
5.3 Les format
272
5.3.1 L'utilisation de Format prédéfinis sur des variables numériques272
5.3.2 Quelques Format utiles sur variables numériques275
5.3.3 Les Format d'affichage des variables de dates et d'heures276
5.3.4 Les Format d'affichage des variables caractères283
5.3.5 La création de Format spécifiques283
5.4 Proc datasets
292
5.4.1 Les principes292
5.4.2 Une procédure différente294
5.4.3 Les options de Proc Datasets294
5.4.4 L'instruction Modify295
5.4.5 Les instructions de gestion des fichiers SAS296
5.5 Optimiser vos ressources
297
5.5.1 Gérer la mémoire vive298
5.5.2 Optimiser la taille de vos tables303
5.5.3 Les index de table311
5.6 La gestion des options globales
318
5.6.1 Les options de SAS318
5.6.2 Les options globales dans SAS Studio/UE/EG321
5.6.3 Les modifications de vos options globales pour une session322
5.6.4 La modification du fichier de configuration SASV9.CFG323
5.6.5 Autoexec.SAS324
Chapitre 6
Maîtriser les procédures de base327
6.1 Quelques éléments communs
328
6.1.1 Rappel : quatre instructions communes328
6.1.2 Title et Footnote328
6.1.3 Les mots-clés des statistiques descriptives330
6.1.4 Les tables cross et fournisseur13332
6.1.5 L'utilisation des tables nécessaires à la reproduction des exemples332
6.2 Proc means
332
6.2.1 Éléments de syntaxe332
6.2.2 Applications simples334
6.2.3 Tables de résultats335
6.2.4 Variables de classification337
6.3 Proc Print
341
6.3.1 Éléments de syntaxe341
6.3.2 Exemples d'application342
6.3.3 L'option style346
6.4 Proc report
350
6.4.1 Exemples simples351
6.4.2 L'instruction define352
6.4.3 Les variables et leurs usages possibles352
6.4.4 Les rapports intégrant des informations de type liste et des informations de synthèse360
6.4.5 Quelques références pour aller plus loin avec proc report362
6.5 Proc Freq
364
6.5.1 Éléments de syntaxe364
6.5.2 Exemples d'application365
6.5.3 Tableaux croisés365
6.5.4 Sorties graphiques ODS Statistical Graphics de Proc Freq368
6.5.5 Mise en forme des tableaux et tables de résultats369
6.6 Proc tabulate
371
6.6.1 Éléments de syntaxe371
6.6.2 La table factures371
6.6.3 Structures lignes-colonnes des tableaux372
6.6.4 Les variables d'analyse375
6.6.5 Choix de la statistique éditée dans le tableau378
6.6.6 L'introduction de récapitulatifs dans les tableaux379
6.6.7 L'introduction de pourcentages dans les tableaux383
6.6.8 Proc Tabulate et ODS386
Chapitre 7
Produire des graphiques391
7.1 Les procédures ODS Graphics
392
7.1.1 Les principes392
7.1.2 ODS Statistical Graphics393
7.1.3 Une première approche de Proc SGPLOT395
7.1.4 Les exercices401
7.2 Les outils de représentation des variables discrètes
401
7.3 Les outils de représentation des distribtions de variables continues
410
7.3.1 HBOX/VBOX411
7.3.2 Histogram et Density413
7.4 Les outils de représentation des relations entre variables
415
7.4.1 Les instructions basiques415
7.4.2 Series416
7.4.3 Band419
7.4.4 Les instructions représentatives d'ajustement421
7.5 La procédure Proc SGPANEL
423
7.6 La personnalisation des graphiques produits par les procédures Statistical Graphics
428
7.7 La création de graphiques avec ODS Graphics Designer
431
Chapitre 8
Utiliser ODS433
8.1 ODS : les principes
434
8.1.1 Qu'est-ce qu'une sortie SAS ?434
8.1.2 Les destinations ODS435
8.1.3 Ouvrir et fermer une destination ODS436
8.1.4 Les options et actions des destinations ODS externes à SAS437
8.1.5 Les styles ODS439
8.2 ODS output et ODS document
440
8.2.1 ODS output441
8.2.2 ODS document443
8.3 ODS HTML
446
8.3.1 La gestion des fichiers des destinations externes446
8.3.2 ODS HTML - Principes446
8.3.3 Création de tables des matières448
8.3.4 Paramétrer la table des matières450
8.3.5 Personnaliser les feuilles de résultats452
8.3.6 Personnaliser les sorties avec ODS select et Exclude459
8.3.7 Destinations multiples des sorties461
8.3.8 ODS HTML5462
8.4 ODS PDF
463
8.4.1 Les principes463
8.4.2 La table des signets465
8.4.3 Les outils de mise en pages465
8.4.4 ODS Layout et ODS région467
8.5 ODS RTF
471
8.6 ODS powerpoint
474
8.7 ODS excel
479
8.7.1 Les principes479
8.7.2 Les sous-options de Options480
8.7.3 Aller plus loin avec ODS excel486
8.7.4 Et si je ne dispose pas d'ODS excel ?489
Chapitre 9
Découvrir Proc SQL491
9.1 Introduction
491
9.1.1 Qu'est-ce que SQL ?492
9.1.2 Que fait-on avec Proc SQL et avec quel type de données ?492
9.1.3 Un langage adapté aux bases de données relationnelles493
9.1.4 Pourquoi apprendre PROC SQL ?495
9.1.5 Terminologie497
9.2 Générer des rapports simples
499
9.2.1 L'instruction select500
9.2.2 La clause select500
9.2.3 La clause from505
9.2.4 La clause Where507
9.2.5 La clause order by510
9.3 Réaliser des rapports de synthèse
511
9.3.1 Le mot-clé distinct512
9.3.2 Les fonctions qui commandent une synthèse512
9.3.3 Le paramétrage de votre sortie au moyen de la clause having517
9.4 Les sous-requêtes
519
9.4.1 Les différents types de sous-requêtes519
9.4.2 Les sous-requêtes renvoyant plusieurs valeurs521
9.5 Les jointures horizontales
525
9.5.1 Les jointures Cross - La production de produits cartésiens525
9.5.2 Les jointures inner et outer527
9.5.3 Les jointures avec clé répétée530
9.5.4 Fusionner plus de deux tables au moyen de proc SQL533
9.5.5 Les jointures natural534
9.5.6 Les jointures réflexives536
9.5.7 Conditions des jointures537
9.5.8 L'utilisation de vues en ligne538
9.6 Les jointures verticales
541
9.6.1 Les jointures except542
9.6.2 Les jointures intersect545
9.6.3 Les jointures union547
9.6.4 Les jointures outer union548
9.7 Les vues SQL et les tables dictionnaires
549
9.7.1 Les principes549
9.7.2 Les tables dictionnaires552
9.8 La création et la gestion des tables
554
9.8.1 La création de tables554
9.8.2 Insérer des lignes dans votre table559
9.8.3 Modifier les valeurs prises dans une colonne563
9.8.4 Supprimer des observations565
9.8.5 Ajouter, supprimer et modifier les caractéristiques des colonnes565
9.8.6 Supprimer une table567
Chapitre 10
Programmer sous SAS avec le langage macro569
10.1 Les concepts du langage macro
570
10.2 Les macro-variables
574
10.2.1 Les principes des macro-variables574
10.2.2 Accéder à la valeur d'une macro-variable575
10.2.3 Les macro-variables automatiques577
10.2.4 Supprimer des macro-variables579
10.3 Macro-variables et langage SAS
580
10.3.1 Les routines call symput et call symputx580
10.3.2 La création de macro-variables avec Proc sql583
10.3.3 Utiliser vos macro-variables dans une étape Data588
10.4 Les macro-fonctions
591
10.4.1 Les macro-fonctions d'évaluation591
10.4.2 Les macro-fonctions de quoting592
10.4.3 Les outils de manipulation des valeurs de macro-variables596
10.5 Premiers exemples sans macro-programme
600
10.5.1 Construire des rapports pré-paramétrés avec le macro-langage601
10.5.2 Économiser vos ressources grâce au macro-langage602
10.6 Les macro-programmes
604
10.6.1 Les principes des macro-programmes604
10.6.2 Construire ses macro-programmes605
10.6.3 Environnement local ou global607
10.6.4 Le paramétrage des macro-programmes608
10.6.5 Les macro-instructions propres aux macro-programmes611
10.6.6 Exercice récapitulatif615
10.7 Conserver ses macro-programmes
616
10.7.1 La sauvegarde des macro-programmes dans des fichiers externes617
10.7.2 L'enregistrement des macro-programmes dans un fichier Catalog618
10.7.3 Autocall619
10.7.4 Les macro-programmes compilés620
10.7.5 L'ordre d'exécution des macro-programmes621
Chapitre 11
Un cas pratique623
11.1 Énoncé du problème
623
11.2 Les données
626
11.3 Construire une méta-table
627
11.4 Produire le graphique
632
Annexes641
L'aide SAS
641
L'aide 9.4641
L'aide en ligne645
SAS : une communauté active d'utilisateurs
647
Bibliographie649
Index651