
Sous SAS, les formats appliqués à une variable servent, entre autres, à rendre une information un peu plus compréhensible par l’oeil humain. Ces formats peuvent provenir de plusieurs sources. Il est important de savoir laquelle est privilégiée si plusieurs locations contiennent le même nom de format avec le même type (pour variable caractère ou numérique). L’option globale FMTSEARCH se charge de définir l’ordre privilégié.
Les sources disponibles : Par défaut, SAS dispose d’une série de formats (Liste disponible sur la documentation en ligne). L’utilisateur peut lui aussi créer ses propres formats sauvegardés de manière temporaire (dans la bibliothèque WORK) ou permanent (dans des bibliothèques définies par lui-même).
Exemple d’application : vous pouvez définir des formats communs à tous vos projets. Si un projet est particulier, vous pourrez définir un autre format portant le même nom que celui plus globale et demander qu’il soit privilégié.
Rappel : Pour revoir quelques notions de base sur les formats vous pouvez consultez ces trois articles:
Dans cet article, la notion de bibliothèque est requise. Vous pouvez vous reporter à l’article suivant si vous débutez :
1. Par défaut, il y a deux bibliothèques disponibles
La procédure affiche dans la log la valeur prise par les options globales. L’option OPTION réduit l’affichage à la seule option FMTSEARCH.
proc options option=fmtsearch;
run;
Il apparaît alors que les deux bibliothèques considérées par SAS sont WORK en priorité et les formats standards de SAS en second.
FMTSEARCH=(WORK LIBRARY)
List of catalogs to search for formats and informats
En exécutant l’instruction OPTIONS ci-dessous, l’ordre de priorité est changé.
options fmtsearch(library work);
Après une nouvelle exécution de la procédure PROC OPTIONS, le programmeur peut visualiser le changement.
Voir le résultat :
proc options option=fmtsearch;
run;
Contenu de la log :
FMTSEARCH=(LIBRARY WORK)
List of catalogs to search for formats and informats
2. Ajouter des bibliothèques
Des formats sauvegardés dans des fichiers catalogues : Les formats sont stockés dans des fichiers appelés FORMAT CATALOG. Il faudra que ces fichiers portent un nom FORMATS et l’extension pour désigner un catalogue.
Assigner la bibliothèque contenant le catalogue : Pour considérer des FORMAT CATALOG permanents définis par l’utilisateur, il faut désigner le chemin d’accès au fichier par un nom de bibliothèque (instruction LIBNAME) et ajouter ce nom dans la bibliothèque dans la liste de FMTSEARCH.
Exemple : Dans l’exemple qui suit, un format nommé GENDER est sauvegardé dans le fichier FORMATS.CATALOG au niveau de C:/SASREF, chemin pointé par la bibliothèque SASREF.
libname sasref ‘C:/sasref’;
proc format lib=sasref;
value gender 1=‘MALE’
2=‘FEMALE’;
run;
Puis ce format aura la priorité sur tout autre format GENDER créé de manière temporaire.
options fmtsearch=(sasref work library);
Voir le résultat :
proc options option=fmtsearch;
run;
Contenu de la log :
FMTSEARCH=(SASREF WORK LIBRARY)
List of catalogs to search for formats and informats
3. Important : La priorité de la bibliothèque WORK en cas d’omission.
Les deux exemples suivant donnent le même résultat car la bibliothèque temporaire est mise en priorité si elle n’est pas citée.
options fmtsearch=(work sasref library);
options fmtsearch=(sasref library);
WORK n’est pas ignoré comme pourrait le suggérer l’affichage dans la log ou mise en dernier.
Voir le résultat :
proc options option=fmtsearch;
run;
Contenu de la log :
FMTSEARCH=(SASREF LIBRARY)
List of catalogs to search for formats and informat