Supposons que l'on dispose d'une variable numérique continue salaire et que l'on souhaite faire un traitement qui utilise les tranches de salaire. Trois possibilités s'offrent :
Un format est un objet SAS, qui existe en propre et indépendemment de toute table, qui associe des modalités caractère à des plages de valeur données (numériques ou caractères).
Un format se crée grâce à une PROC FORMAT :
Une fois la PROC FORMAT soumise, le format est créé pour toute la durée de la session.
On peut aussi stocker le format compilé dans un catalogue, afin de pouvoir l'utiliser
une prochaine fois sans avoir à soumettre à nouveau le programme (voir la partie
Comment sauvegarder quoi).
Le nom d'un format ne doit pas excéder 8 caractères (cette condition est levée dans la version 9)
et ne doit pas finir par un chiffre.
Si les plages de valeurs sont numériques, le format est dit numérique. Sinon, il est dit caractère,
et son nom doit commencer par un $.
Les plages de valeurs peuvent s'écrire sous forme d'intervalle (par exemple : 0-100) ou sous forme
de liste (par exemple : 0,1,2,5). Le signe < sert à exclure une borne de l'intervalle. Les plages
doivent être des ensembles disjoints.
Pour éviter d'avoir à soumettre la PROC FORMAT à chaque session, on peut choisir de sauvegarder le format compilé dans un catalogue. Pour cela, il suffit de rajouter une option library=nom_catalog au moment de la création du format.
Si au contraire on dispose d'un catalogue de formats dont on ne connaît pas le code source, on peut visualiser leurs propriétés (plages des valeurs et modalités associées) en lançant une PROC FORMAT avec options library= et fmtlib, et sans instruction value :
liste les formats contenus dans le catalogue formats.sas7bcat de la librarie malib.
Le format fonctionne comme une étiquette que l'on "colle" sur une variable le temps d'une
procédure.
Supposons que l'on souhaite connaître le nombre moyen d'enfants dans les familles pauvres, dans les
familles à revenus moyens et dans les familles riches. On va donc constituer des sous-groupes grâce
à une instruction BY salaire ; encore faut-il lui préciser qu'à ce moment il doit lire les valeurs
de salaire non comme des valeurs numériques mais comme une des modalités "pauvre",
"moyen" ou "riche". Pour cela, on applique le format à la variable salaire grâce
à une instruction FORMAT :
Exemple :