Vous êtes sur la page 1sur 65

SAS Base

Support de cours

STID 2me anne 2006-2007 Christelle DEFOSSEZ

Objectifs du cours

Acqurir les bases de programmation du langage SAS


Lecture des donnes

Import et exportation de donnes Agrgation de donnes Fusion de tables Procdure statistique

Manipulation et transformation de donnes


Exploration et analyse des donnes

Sommaire
Partie 1 Familiarisation avec l'environnement SAS 1. Le logiciel SAS 2. Les fentres SAS 3. Les tables SAS 4. L'espace de stockage 5. Les variables 6. Les types de traitement 7. Options gnrales de SAS 8. L'instruction DM

Logiciel SAS
SAS (Statistical Analysis System) est un progiciel, qui l'origine a t dvelopp pour le calcul statistique. SAS est un progiciel constitu:
d'un langage de procdure permettant l'tude des donnes individuelles, d'un langage de programmation volu permettant de manipuler et de grer des fichiers de donnes.

SAS en chiffre :
Fonde en 1976, 1,2 milliard de dollars en 2001 , 8 400 employs dans le monde (270 en France) 38000 sites clients rpartis dans 110 pays 3,5 millions d'utilisateurs 30% du chiffre d'affaires annuel rinvesti en R&D

Actuellement en version 9.

Logiciel SAS
SAS est compos de plusieurs modules:
SAS/BASE: Gestion de donnes (transformations de donnes, cration de nouvelles variables, tris, slections, dcoupe en sous-fichiers, fusion de plusieurs fichiers, ...). SAS/STAT: procdure d'analyse statistique. SAS/ETS: Procdures d'analyse conomtrique. SAS/OR: Procdures de recherche oprationnelle. SAS/IML: Langage matriciel interactif. SAS/GRAPH: Procdures graphiques pour tables traantes et terminaux graphiques. SAS/FSP: Procdures interactives pour la gestion des donnes. SAS/CONNECT: Traitement coopratif entre sessions SAS. SAS/Integration Technologies: Support pour les clients SAS/Enterprise Guide.
5

Les fentres principales


Editor : criture du programme
Comprend les foncionnalits d'un diteur de texte :

copier/couper/coller rechercher/remplacer

Depuis la Version 8, les diffrents lments du programme sont en couleur pour faciliter la lecture :

bleu fonc = mots cls vert=commentaire rouge=erreur noir= instruction...

Possibilit de rduire ou dployer + les tapes d'un programme Excution du programme


6

Les fentres principales


Log : visualisation du droulement du programme et les erreurs
A chaque excution de programme, le code source est rcrit dans cette fentre et chaque tape est commente. Comment lire une log?

Note : informations gnrales sur l'xcution de chaque tape


Temps de traitement (elapsed : temps rel, CPU : temps machine) Nombre d'observations en lecture et criture Informations propres au code source utilis...

Warning : SAS rencontre une erreur qu'il russit grer SEUL, cela correspond-t-il ce que vous dsirez? ERROR : Message d'erreur bloquante

Les fentres principales


Output : Visualisation des rsultats
Receuil des rsultats produit suite l'excution d'un programme

Results :Gestion des rsultats d'un programme Explorer : Navigation entre les fichiers de donnes
Affichages par espace de stockage ou librairies Dtail des fichiers de donnes (nom, date de cration, taille...) Consultation des fichiers de donnes ou tables Manipulation et cration de fichiers de donnes Gestion de l'espace de stockage (suppression des fichiers de donnes ou tables) Cration de librairies
8

Les fentres principales


Footnotes : Permet de modifier les notes de bas de page des sorties SAS Options : Permet de modifier les options de la session en cours Keys : Permet de modifier les touches de raccourcis pour les commandes SAS

Les tables de donnes


Le logiciel SAS permet de travailler sur des fichiers de donnes volumineux mais ces derniers doivent tre mis sous forme de tables ou tableaux SAS
Stockes dans un espace de stockage dfini les librairies, Contenant des individus ou observations en ligne et une ou plusieurs variables en colonne

Le nom d'une table doit tre compos de 32 caractres maximum, il doit commencer par une lettre ou _ et peut contenir des chiffres.

10

Lespace de stockage
SAS fonctionne avec des rpertoires logiques qui sont diffrents des rpertoires physiques.

Pour SAS, il existe 2 ensembles de fichiers :


Des fichiers au format SAS:

manipulables en l'tat l'aide ou grce l'environnement SAS :


Les tables de donnes Les vues qui sont des structures de donnes sans contenu physique Des catalogues qui sont des ensembles de stockage d'lmens SAS autres que des tables.Pour l'utilisateur courant, es lments d'un catalogue seront principalement des formats, des crans de saisie, des programmes et des graphiques (type = format, screen, source,grseg)

l'ensemble de ces fichiers constitue une librairie.

Les autres fichiers appels fichiers externes

fichiers de type texte, Excels, dbase, html...


11

Lespace de stockage
Gestion des finchiers SAS : Les librairies
Elles permettent de stocker les tables SAS. Chaque librairie est lie un rpertoire sur le disque dur ou sur le serveur utilis. Cela permet d'viter la rcriture du chemin chaque cration de tables SAS en utilisant le nom de la librairie.

Cration d'une librairie : - Via l'instruction LIBNAME (fentre Editor):


LIBNAME nom_lib 'C:\Nom_repertoire';

- Via la fentre Explorer par interface graphique.

*le nom de la librairie (nom_lib) ne doit pas exder 8 caractres commenant par une lettre ou _ et pouvant contenir des chiffres

Utilisation d'une librairie :


nom_lib.nom_table
12

Lespace de stockage
Des options sont associs l'instruction libname :
List fournira le chemin des rpertoires physiques des librairies lists LIBNAME nom_lib LIST; Clear permettra la suppression des librairies listes LIBNAME nom_lib CLEAR;

13

Lespace de stockage
2 types de stockage des fichiers SAS : Stockage permanent :

Afin de crer des tables SAS permanentes, il est ncessaire de spcifier une librairie, qui permette SAS d'allouer des fichiers SAS

Stockage temporaire :

Lorsqu'aucune librairie n'est spcifie lors de la cration d'une table, SAS cre lui-mme une librairie WORK dans laquelle il stocke des fichiers ou tables temporaires. Attention cette librairie est fface en quittant SAS!

14

Lespace de stockage
Gestion des fichiers externes : Rfrence un fichier externe :
FILENAME nom_fic 'C:\Nom_repertoire\fichier.txt';

Cration d'un raccourci vers un rpertoire de stockage des fichiers externes de sortie :
FILENAME nom_rep 'C:\Nom_repertoire\';
*le nom du fichier externe (nom_fic) et celui du raccourci (nom_rep) ne doit pas exder 8 caractres commenant par une lettre ou _ et pouvant contenir des chiffres

15

Les variables
Une table SAS contient des variables. Chaque variable est identife par :
Son nom :

Il sera de prfrence court car utilis un grand nombre de fois mais explicite afin de faciliter l'identification d'une variable, If faut viter les caractres spciaux ($+,...) et accentus, Il ne faut pas utiliser les mots rservs par SAS

Son type : caractre ou numrique Sa longueur:

Variable caractre :
Longueur par dfaut : 8 caractres Longueur mini :1 caractre, maxi : 32 767 caractres

Variable numrique (nombre d'octets sur lesquels une variable est stocke)
Longueur par dfaut 8 octets Longueur mini : 3 octets, maxi : 8 octets

Son format (format d'criture)/ informat (format de lecture)

Une variable, ensemble des valeurs concernant une mme 16 information, correspond une colonne SAS

Types de traitements SAS


2 types d'tapes constituent un programme SAS :
L'tape DATA :

Elle permet de construire et transformer une ou plusieurs tables SAS Elle commence par le mot cl DATA et se termine par l'instruction RUN Elle permet d'exploiter les tables SAS et de crer ventuellement des tables SAS de rsultats Elle commence par le mot cl PROC et se termine par l'instruction RUN

L'tape PROC :

Toutes les instructions se terminent par un ; Des commentaires peuvent tre insrs:
Soit il commence par * et se termine par ; Soit il commence par /* et se termine par */
17

Options gnrales de SAS


Des options gnrales sont associes l'ouverture d'une session SAS :
CENTER/NOCENTER : centre l'impression des rsultats des procdures DATE/NODATE : imprime la date en haut de chaque page NUMBER/NONUMBER : numrote les pages d'impression OBS=MAX : indique la dernire observation traiter FIRSTOBS=1 : indique la permire observtion traiter ...
*En gras, les options par dfaut.

Il est possible de lister les options en utilisant la procdure suivante:


PROC OPTIONS; RUN;

Les options sont modifiables tout moment du programme par l'intruction (en gnral au dbut):
OPTIONS options;
18

L'instruction DM
L'instruction DM permet de passer des commandes sous forme d'instruction permettant d'agir sur les diffrentes fentres SAS. Syntaxe :
DM fentre '' Instruction''; Le nom de la fentre indique sur quelle fentre la commande va agir. Si aucun nom n'est mentionn, les commandes s'appliqueront la fentre active.

Exemple :
DM log clear; Cette instruction efface le contenu de la log.
19

Sommaire
Partie 2 Manipuler et crer des tables SAS 1. Shma de programmation 2. Prendre connaissance des donnes 3. L'tape DATA 4. Cration d'une table SAS sur fichier extrieur 5. Les variables 6. Les procdures 7. Recodage des variables 8. Les instructions de gestion des variables 9. Manipulation des tables SAS

20

Schma de programmation
Comment bien programmer?
Prendre connaissance des donnes et de la problmatique Visualiser les donnes dans les librairies (Explorer)

Ecrire le programme

Ecrire le programme (Editor)

Soumettre le programme

Excuter le programme (Editor)

Consulter de la log et/ou de l'output

Consulter la log et les rsultats (Log/Output)

Erreur ou incomplet

Corriger le programme (Editor)

Corriger ou complter

Exploiter les rsultats

21

Prendre connaissance des donnes


Avant de se lancer dans la programmation, il faut avant tout comprendre la problmatique et identifier les besoins en terme de donnes. Aprs identification des donnes, il faut les localiser c'est dire:
Identifier si elles sont disponibles dans les tables de travail? Localiser dans quelles tables les donnes (ou variables) se trouvent? Localiser dans quelles librairies les tables sont stockes?

22

Prendre connaissance des donnes


Pour consulter le contenu d'une librairie, 2 solutions:
Via la fentre Explorer Via une commande SAS : PROC CONTENTS DATA=nom_lib._all_ DIRECTORY; RUN;

Pour consulter le contenu d'une table, 2 solutions:


Via la fentre Explorer Via une commande SAS : PROC CONTENTS DATA=nom_lib.table; RUN;
23

L'tape DATA
L'tape DATA permet de :
Crer des tables SAS suite une recherche d'information Crer des variables et recoder des donnes Supprimer des variables Concatner des tables Fusionner des tables Mettre jour des tables Crer des fichiers externes

Ces diffrentes actions se font partir :


D'autres tables SAS De fichiers externes D'aucun fichier en entre

24

L'tape DATA
L'instruction DATA est la premire instruction de l'tape Data, elle tablit le nom de la table SAS en sortie. Syntaxe :
DATA nom_lib.tableS ... nom_lib.tableSn (liste options); Liste instructions; RUN; (liste options)

nom_lib.tableS2 (liste options)

Cas particulier :
L'instruction DATA _Null_ ; ne cre pas de table en sortie.
25

L'tape DATA L'instruction SET


Cette instruction permet de crer une table partir d'une autre table SAS. Syntaxe :
DATA nom_lib.tableS SET RUN; nom_lib.tableE Liste instructions; (liste options); (liste options);

Remarques:
Si le nom de table de sortie est identique celui de la table d'entre, cette dernire est crase. L'instruction SET _LAST_; a la particularit de lire la dernire table SAS existante cre dans la session.

26

L'tape DATA Les options de l'tape DATA


Les options des tables SAS se mettent habituellement entre parenthses aprs le nom d'une table, les plus courantes sont:
OBS=nn (en entre uniquement)

dtermine la fin du processus de l'tape la nnime observation

FIRSTOBS=pp

(en entre uniquement)

dtermine le dbut du processus de l'tape sur la ppime observation variable indicatrice qui permettra ensuite par une instruction conditionnelle approprie d'xcuter un ensemble d'instruction nom des variables conserver dans la table en entre ou en sortie nom des variables supprimer dans la table en entre ou en sortie permet de filtrer les donnes en entre ou en sortie permet de renomer les variables en entre ou en sortie
27

END=varboolenne (en entre uniquement)

KEEP= liste des variables

DROP= liste des variables

WHERE=(Condition)

RENAME= (ancien nom=nouveau nom)

Cration d'une table SAS sur fichier extrieur


Comment importer un fichier extrieur?
2 solutions:

Via la fentre EXPLORER Via des instructions SAS dans la fentre EDITOR

Syntaxe globale :
DATA INFILE INPUT Fichier_SAS_cr_en_sortie; Fichier_en_entre; Format_de_lecture;

RUN; DATA permet de nommer la table SAS crer INFILE indique la rfrence du fichier lire en entre INPUT prcise comment lire les donnes
28

Cration d'une table SAS sur fichier extrieur


Instruction INFILE :
Elle permet d'identifier l'intrieur d'un programme SAS le fichier extrieur (les donnes brutes) transformer en table SAS. Syntaxe : INFILE Nom_fichier_externe (liste des options);

La spcification du nom_du_fichier peut tre:


Dfinit par l'instruction FILENAME Le chemin accdant au fichier

Quelques options :
Firstobs = nnime observation : Numro de la premire observation du fichier en entre prendre en compte dans la table SAS cre. Obs= nnime observation : numro de la dernire observation du fichier en entre prendre en compte dans la table SAS cre. DLM='sparateur' : Identification du sparateur des variables dans le fichier physique (DLM='09'x pour un sparateur tabulation, DLM=';' pour un sprateur ; ,DLM=',' pour un sparateur ,) DSD : Permet de lire un fichier avec des donnes manquantes et donc reprsentes par deux dlimiteurs conscutifs. MISSOVER : permet de lire des enregistrements avec des valeurs 29 manquantes en fin d'enregistrement.

Cration d'une table SAS sur fichier extrieur


Instruction INPUT :
Elle permet de lire les donnes externes et de les placer dans le vecteur de travail et de dcrire les variables lire en prcisant :

leur nom, leur type, leur longueur, leur format de lecture (INFORMAT), puis dans la table SAS cre, leur associer ventuellement un format d'dition (FORMAT) qui pourra tre diffrent du format d'importation. Le mode liste : forme la plus simple de fichier d'entre qui impose plusieurs restrictions sur les donnes (peu courant), Le mode colonne : forme correspondant un fichier avec des variables en colonne qui doivent toujours tre dans les mmes zones, Le mode formatt : forme la plus courante,elle combine les caractristiques du mode colonne et la lecture de donnes 'non- 30 standards'.

Il existe 3 modes INPUT :

Cration d'une table SAS sur fichier extrieur


Le mode liste :
Syntaxe : INPUT var1 ($) var2 ($) ... varn ($);

Les noms des variables caractres seront toujours suivis du symbole $. Sur le fichier en entre :
Les valeurs seront spares par au moins un espace, Si une valeur doit tre manquante sur le fichier elle sera reprsente par un . Les champs alphanumriques ne doivent pas contenir d'espace ou de blancs Ce format ne permet pas de lire le format de variable date.

31

Cration d'une table SAS sur fichier extrieur


Le mode colonne :
Syntaxe : INPUT var1 ($) col_deb-col_fin (dcimales) ... varn ($) col_deb-col_fin (dcimales);

Les noms des variables caractres seront toujours suivis du symbole $. Sur le fichier en entre :
Les valeurs des variables dfinies doivent toujours tre dans les mmes zones, L'ordre des variables est indiffrent, Des sous zones de variables peuvent tre lues.

32

Cration d'une table SAS sur fichier extrieur


Le mode formatt :
Syntaxe : INPUT (pointeur) var1 ($) informat ... (pointeur) varn ($) informat (@ ou @@);

Pointeur : SAS permet de contrler la colonne partir de laquelle v se faire la lecture sur l'enregistrement en cours:
@n : v la colonne n de la ligne courante +n : avance de n colonnes vers la droite #l : va la ligne l partir de la position actuelle

Informat (format de lecture) : il prcise le type de la variable, sa longueur et le type de reprsentation utilise (dcimale, entier, date...) En fin d'instruction :
@ : l'instruction INPUT dclenche la lecture de l'enregistrement suivant. Pour empcher cette lecture, il suffit de mettre un @ en fin d'instruction et donc de reprendre la lecture du mme enregistrement. 33 @@ : en fin d'instruction INPUT permet de rester sur le mme enregistrement.

Cration d'une table SAS sur fichier extrieur


Procdure d'importation :
Syntaxe : PROC IMPORT DATAFILE= 'Chemin_fichier' OUT=table (DBMS=dlimiteur) (replace); (GETNAMES=YES/NO); RUN;

DATAFILE : fichier en entre (chemin du fichier ou nom logique) OUT : table SAS cre DBMS : dlimiteur de donnes du fichier en entre (XLS par dfaut, premire feuille)
CSV (fichier .CSV), TAB (tabulation, fichier .TXT), DLM (blanc, fichier .*)...

REPLACE : remplace la table en sortie si elle existe dj GETNAMES : indique si les liblls des variables sont en premire ligne 34

Cration d'une table SAS sur fichier extrieur


L'instruction CARDS permet de cre une table SAS partir de la lecture en mode liste des enregistrements saisis u sein de l'tape DATA. Syntaxe :
DATA INPUT CARDS; Liste_ des_valeurs_des_variables; RUN; DATA permet de nommer la table SAS crer INPUT prcise comment lire les donnes (Voir mode liste) CARDS permet de saisir la suite les donnes lire Fichier_SAS_cr_en_sortie; var1 ($) var2 ($) ... varn ($);

Les mmes contraintes que le mode liste sont appliquer. L'instruction INFILE CARDS MISSOVER; permet de lire des enregistrements avec des valeurs manquantes en fin 35 d'enregistrement.

Les variables Les formats d'criture : FORMAT


L'instruction FORMAT permet d'associer un format d'dition (criture,affichage,impression) une variable. Syntaxe:
FORMAT nom_variable(s) format.; Il est possible d'affecter un mme format une liste de variable Format. (voir liste des formats)

Il est prfrable de placer l'instruction FORMAT en dbut de l'tape DATA.

36

Les variables Les formats de lecture : INFORMAT


L'instruction INFORMAT permet d'utiliser un format de lecture ou de saisie pour une variable. Syntaxe:
INFORMAT nom_variable(s) informat.; Il est possible d'affecter un mme format une liste de variable Informat. (voir liste des informats)

Il est prfrable de placer l'instruction INFORMAT en dbut de l'tape DATA avant de faire rfrence aux variables concernes.

37

Les variables Affecter un intitul une variable : LABEL


L'instruction LABEL permet de dfinir un intitul clair pour une variable. Ce label sera permanent. Syntaxe :
LABEL var1=label1 ... varn=labeln; L'intitul associ une variable ne peut pas excder 40 caractres. L'intitul doit tre entre apostrophes ou guillemets. Si une apostrophe apparat dans ce dernier elle doit tre double.

38

Les variables Dfinir la longueur d'une variable LENGTH


L'instruction LENGTH permet de dfinir la longueur (en octets) utile pour stocker des variables d'une table (par dfaut 8 octets). Syntaxe :
LENGTH nom_variable(s) ($)longueur; Si la variable est de type caractre, la longueur est prcde de $. Si la variable est de type numrique, il faut choisir judicieusement le nombre d'octets associer: Longueur Valeur entire maximale de stockage stockable 8192 3 2097152 4 5 536870912 6 137438953472 35184372088832 7 9007199254740990 8
39

Les variables Dfinir les attributs des variables :ATTRIB


L'instruction ATTRIB permet de dfinir pour une variable : le format de lecture (INFORMAT), le format d'criture (FORMAT), un intitul (LABEL) et une longueur de stockage (LENGTH). Syntaxe :
ATTRIB nom_variable INFORMAT FORMAT LABEL LENGTH = informat. = format. = label = ($) longueur;

Il est prfrable de placer l'instruction ATTRIB avant toute autre instruction faisant rfrence aux variables concernes.
40

Les procdures Gnralits


L'tape PROC est utilise pour :
Effectuer des calculs statistiques, Editer des tats, Sortir des graphiques, Effectuer de la gestion de donnes, Crer de nouvelles tables...

41

Les procdures Gnralits


L'tape PROC possde deux sortes d'instructions:
L'instruction d'appel de la procdure: PROC nom_procedure DATA=table_entre [options];

Si le nom de la table en entre n'est pas prcis, la procdure prendra par dfaut la dernire table cre. Plusieurs instructions sont communes diffrentes procdures:
BY : Traitement par sous-population CLASS : Agrgation (variables qualitatives) VAR : Slection de variables (dition ou variables de calcul) ID : Identification de l'observation FORMAT : Associe une variable un format d'dition LABAL : Associe le nom d'une variable un libell en clair WEIGHT et FREQ : Instructions de pondrations

Les instrutions de la procdure et les options des instructions:

Chaque procdure se finit par l'instruction RUN;


42

Les procdures Exemple de procdures


Procdures statistiques :
PROC FREQ (calcule de frquence) PROC MEANS, PROC SUMMARY (statistique descriptive de base)

Procdures d'dition :
PROC TABULATE (construction de tableau) PROC PRINT (impression de rsultats dans l'output)

Procdure graphique :
PROC GCHART

Procdures utilitaires :
PROC PROC PROC PROC DATASETS (liste, supprime et renomme les tables SAS) SORT (tri les tables) FORMAT (cration de format) TRANSPOSE (transposition de table)

Procdure de requte :
PROC SQL (utilisation du langage SQL)
http://wwwsas.stat.ucl.ac.be/sasdiscute/modules/basefr.html
43

Les procdures Zoom sur la PROC FREQ


Cette procdure permet d'tudier la distribution des modalits de variables ou de croisement de variables. Elle permet d'diter :
Les modalits de la variable tudie Les frquences d'apparition de chaque modalit Le % global Le % ligne Le % colonne Les frquences cumules Les % cumuls

44

Les procdures Zoom sur la PROC FREQ


Syntaxe :
PROC FREQ DATA=table_entre [options]; TABLE var1 var2 var3 .. varn var1*var2 var1*var2*var3 [/options]; Les options principales de l'instruction d'appel de la procdure sont:

ORDER=INTERNAL ou FREQ ou DATA ou FORMATTED (modifie l'ordre d'dition des modalits correspondant respectivement un ordre croissant, dcroissant, ordre d'apparition de la table ou ordre alphabtique des formats associs) PAGE (permet d'diter une variable ou un croisement de variables par page). Les options de suppression d'dition : NOFREQ (les effectifs), NOROW(% ligne), NOCOL (% colonne), NOPERCENT (% totaux), NOCUM (% cumuls), NOPRINT (pas d'dition dans l'output) 45 Les autres options : LIST MISSING OUT=table_sortie

Les options de l'instruction TABLE sont :

Les procdures Zoom sur la PROC MEANS


La procdure MEANS permet de produire un certain nombre de calculs statistiques sur l'ensemble d'une table ou sur un groupe d'observations. La procdure MEANS sans option et sans instruction de procdure dite pour chaque variable numrique de la table:
N = nombre d'observation o la valeur est non manquante MEAN = moyenne STD = cart-type MIN = valeur minimum MAX = valeur maximum

46

Les procdures Zoom sur la PROC MEANS


Syntaxe :
1 2 3 4 PROC MEANS DATA=table_entre [options]; CLASS VAR WEIGHT ou FREQ 5 OUTPUT varp; OUT=table_sortie (options) stat1(varn1 varn2...)=varstat1 varstat2 ... stat2(varn1)=varstat21....; RUN;
47

varc1 varc2 varc3 .. varcn; varn1 varn2 varn3 ... varnn; varp;

Les procdures Zoom sur la PROC MEANS


Descriptif des instruction:
1 : Instruction d'appel de la procdure, les options sont les suivantes:

MISSING : prend en compte les valeurs manquantes dans les calculs NOPRINT: n'affiche pas les rsultats dans la fentre OUTPUT NWAY : ne garde que les rsultats statistiques du croisement le plus fin

2 : Instruction servant dfinir des sous-populations pour les quelles on veut des calculs statistiques (variables qualitatives) 3 : Instruction servant dclarer les variables quantitatives sur lesquelles seront calcules les statistiques. 4 : WEIGTH pondre les rsultats des calculs statistiques, FREQ pondre les rsultats des calculs statistiques ainsi que la population de la classe. 5 : Instruction permettant de conserver tous les calculs statistiques dans une table.
48

Les procdures Zoom sur le PROC SORT


Cette procdure permet de classer les observations dans l'ordre d'une ou plusieurs variables de la table. Syntaxe :
PROC SORT DATA=table_entre [OUT= table_sortie options]; BY var1 var2 ... varn ; RUN;

Les options principales sont :


NODUPKEYS = limine les observations ayant le mme cl de tri NODUPREC = limine les doublons complets FORCE = supprime l'index en sortie dans un tri

Par dfaut, le tri est croissant. Pour le rendre dcroissant, il faudra utiliser l'option DESCENDING avant le nom de la variable trier ainsi.
49

Les procdures Zoom sur le PROC SORT


Cette procdure permet de classer les observations dans l'ordre d'une ou plusieurs variables de la table. Syntaxe :
PROC SORT DATA=table_entre [OUT= table_sortie options]; BY var1 var2 ... varn ; RUN;

Les options principales sont :


NODUPKEYS = limine les observations ayant le mme cl de tri NODUPREC = limine les doublons complets FORCE = supprime l'index en sortie dans un tri

Par dfaut, le tri est croissant. Pour le rendre dcroissant, il faudra utiliser l'option DESCENDING aant le nom de la variable trier ainsi.
50

Recodage des variables Fonctionnement de l'tape DATA


Schma de l'tape DATA:
Dbut de l'tape DATA Ouverture de la table ou des tables de sortie

Cration du vecteur de travail (PVD) Initialisation ou rinitialisation des variables (lues ou cres) Fin de l'tape DATA

Fin de lecture?

Lecture de l'observation suivante ou de l'enregistrement suivant

Execution des instructions du programme

Ajout d'une observation dans la table ou les tables en sortie (OUTPUT implicite)

Retour au dbut de l'tape DATA

51

Recodage des variables Gnralit


Une nouvelle variable est cre dans une table par une instruction d'affectation dans l'tape DATA. Une nouvelle variable est cre partir :
D'une variable SAS existant dj, D'une constante (numrique, caractre ou date), D'une expression SAS (avec ou sans fonction).
*Liste des oprateurs et fontions

Remarque :
La variable de totalisation permet d'effectuer des cumuls, de grer des compteurs. Elles ne rinitialisent pas lors de l'xcution de l'tape DATA et cumulent donc les valeurs. Plusieurs syntaxes :

VAR1+VAR2; obligatoirement numrique VAR1+constante numrique; VAR1+expression arithmtique;

52

Les Instructions de gestion des variables


Certaines options de l'tape DATA sont aussi des instructions, elles se placent aprs l'instruction DATA:
KEEP var1 var2 ... varn; DROP var1 var2 ... varn; RENAME ancien nom=nouveau nom;

Les instructions filtres sont :


IF condition;

L'instruction IF teste une condition. Si la condition n'est pas remplie les instructions suivantes de l'tape DATA ne sont pas effectus. L'instruction WHERE teste une condition. Si la condition n'est ps remplie, l'observation de la table en entre n'est pas charge dans le vecteur de travail. Tous les oprateurs SAS sont valables pour le WHERE. Des oprateurs supplmentaires sont valables:
CONTAINS : oprateur sur les chanes de caractres, LIKE avec % remplaant plusieurs caractres ou _ remplaant 1 caractre. Variable BETWEEN val1 AND val2; 53 Variable IS NULL;

WHERE condition;

Les Instructions de gestion des variables


Le traitement conditionnel se fait avec l'instruction IF :
IF condition1 THEN instruction1; ELSE IF condition2 THEN instruction2; ELSE instruction3; IF condition THEN DO; instructionc11;instructionc12;...;END; ELSE DO; instructionc21;instructionc22;...;END;

L'instruction DELETE provoque le retour au dbut de l'tape DATA sans criture de l'observation courante:
IF condition THEN DELETE;

L'instruction OUTPUT est implicite en fin de boucle de l'tape DATA, cependant il est possible de grer l'criture des observations dans une ou plusieurs tables en sortie:
IF condition THEN OUTPUT tables1; ELSE OUTPUT tabes2;
54

Les Instructions de gestion des variables


Le traitement itratif se fait avec l'instruction DO :
Cette instruction se finit obligatoirement par un END; Boucle simple: DO i=ind1 TO ind2 BY pas; Instruction1; ... Instruction n; END; Boucle tant que dont la condition est value avant l'xcution des instructions de la boucle: DO WHILE (condition); Instruction1; ... Instruction n; END;
55

Les Instructions de gestion des variables


Le traitement itratif se fait avec l'instruction DO :
Boucle jusqu' ce que dont la condition est value aprs l'xcution des instructions de la boucle: DO UNTIL (condition); Instruction1; ... Instruction n; END;

Les instructions du DO UNTIL sont excutes au moins une fois mais pas celles du bloc DO WHILE.

56

Manipulation de tables SAS Instruction SET


Concatnation de table :
L'instruction SET permet de transfrer les donnes d'une ou plusieurs tables SAS dans le vecteur de travail. Elle permet aussi d'intercaler les observations de 2 ou plusieurs tables SAS, condition qu'elles aient la mme structure et qu'elles soient tries. Il faut recourir l'instruction complmentaire BY. Syntaxe:
DATA SET nom_lib.tableS (liste options); nom_lib.tableE1 (liste options) nom_lib.tableE2 (liste options) ... nom_lib.tableEN (liste options); BY var_cle; Liste instructions; RUN;
57

Manipulation des tables SAS Instruction SET


L'option IN:
L'instruction SET, utilise avec l'option IN (assimilie une variable logique temporaire, valable uniquement durant l'tape DATA) sert indiquer la provenance de l'observation. Quand l'observation est prsente dans la table elle prend la valeur 1, sinon elle est 0. Syntaxe:
SET nom_lib.tableE (IN=nom_var1 liste options);

L'option END:
L'instruction SET, utilise avec l'option END (assimilie une variable logique temporaire, valable uniquement durant l'tape DATA) indique la dernire observation lue. La variable attribue END est initialise 0 et prend la valeur 1 la dernire observation de la table. Syntaxe:
SET nom_lib.tableE (END=nom_var1 liste options);
58

Manipulation des tables SAS Instruction SET


L'utilisation des instructions BY, RETAIN, FIRST et LAST:
Ces instructions permettent de calculer des agrgats. Exemple de syntaxe :
DATA nom_lib.tableS (liste options);

SET nom_lib.tableE1 (liste options) nom_lib.tableEN (liste options); BY var_cle; RETAIN var_ind1 var_ind2 ... var_indN; IF FIRST.var_cle THEN DO; var_ind1=0; var_ind2=0; ...; var_indN=0;END; Liste instructions; IF LAST.var_cle THEN DO; instructions; END; RUN;

59

Manipulation des tables SAS Instruction SET


L'utilisation des instructions BY, RETAIN, FIRST et LAST:
L' instruction BY permet de trier au pralable selon la ou les variables spcifies. Elle gnre 2 variables temporaires dans le PVD : FIRST.var_cle et LAST.var_cle o var_cle est la ou les variables spcifies par l'option BY. FIRST.var_cle vaut 1 chaque fois que var_cle change de valeur et vaut 0 pour toutes les autres observations. LAST.var_cle vaut 1 pour la dernire observation et 0 pour toutes les autres. RETAIN permet de retenir le contenu des variables calcules et donc d'viter leur rinitialisation.

60

Manipulation des tables SAS Instruction MERGE et BY


L'instruction MERGE permet de fusionner des observations de 2 ou n tables SAS en une seule table SAS. L'instrucion BY permet de runir dans la mme observation d'une nouvelle table, les observations de tables SAS ayant la mme valeur de cl. Les tables en entre doivent tre tries sur le mme critre de fusion. Syntaxe:
DATA nom_lib.tableS (liste options); MERGE nom_lib.tableE1 (liste options) nom_lib.tableE2 (liste options) ... nom_lib.tableEN (liste options); BY var_cle; Liste instructions; RUN;
61

Manipulation des tables SAS Instruction MERGE et BY


L'option IN:
L'option IN indique SAS si la modalit courante de la cl de fusion existe dans la table en entre. Elle permet d'utiliser une variable logique qui prend la valeur 1 si la modalit est dans la table ou 0 si elle n'y est pas. L'utilisation de ces variables temporaires peuvent tre utilis pour filtrer les donnes en sortie. Syntaxe :
DATA nom_lib.tableS (liste options);

MERGE nom_lib.tableE1 (liste options IN=varint1) nom_lib.tableE2 (liste options IN=varint2) ... nom_lib.tableEN (liste options IN=varintn); BY var_cle; Liste instructions; RUN;
62

Cration de format d'dition PROC FORMAT


Cette procdure permet de crer des formats d'dition sur a base de valeurs contenues dans une variable. Les formats se dfinissent dans la procdure FORMAT. Syntaxe:
PROC FORMAT LIBRARY=nom; VALUE $nom du format val1 val5-val9 RUN; = = Groupe1 Groupe2 Groupe3 ...; val2,val3,val4=

Remarque:
Une procdure FORMAT peut contenir plusieurs instructions VALUE.
63

Cration de format d'dition PROC FORMAT


Il existe 3 valeurs particulires :
LOW : dsigne la valeur la plus petite (hormis la valeur manquante) HIGH : dsigne la valeur la plus grande OTHER : dsigne les valeurs non prcdemment dcrites.

La procdure FORMAT n'dite rien, elle stockeles formats dans le catalogue de formats indiqu par LIBRARY=nom. Si aucune librairie n'est prcise alors le format cr est stock dans le catalogue work.formats.

64

Cration de format d'dition Cration d'une table partir d'une table SAS
1 re tape : Cration de la table SAS de rfrence
La procdure FORMAT n'a besoin que de 4 variables pour pouvoir prparer la cration d'un format. Il suffira donc de crer une table SAS contenant ces variables:

FMTNAME : variable contenant le nom du format TYPE : variable de 1 caractre indiquant le type de format (C = caractre, N=numrique) LABEL : variable contenant la variable formatte START : variable contenant la valeur que l'on veut formater (ou START et END varaibles contenant les bornes infrieures et suprieures incluses)

2 me tape : Cration du format


Il reste xcuter la procdure FORMAT sur cette table SAS pour charger le format. Syntaxe: CNTLIN pour la cration, CNTLOUT pour la lecture PROC FORMAT CNTLIN=nom de table;RUN; PROC FORMAT CNTLOUT=nom de table; SELECT format;RUN;
65