Bibliothèque

Une bibliothèque (library en anglais) est définie par un nom appelé dans le jargon libref et un chemin d’accès.

Pour désigner un dataset dans un programme SAS, nous avons besoin de son nom et de son emplacement.

En programmation SAS, le nom du dataset n’est pas directement précédé de son chemin d’accès. Cela serait peu pratique à l’usage.

Le nom du dataset est précédé d’un petit nom appelé libref (le nom de la bibliothèque)
qui sert à faire le lien avec le chemin d’accès.

Il existe

  • des bibliothèques disponibles lors de l’ouverture d’une session SAS comme WORK ou SASHELP
  • des bibliothèques créés par l’utilisateur le temps d’une session SAS.

Créer, utiliser et supprimer une bibliothèque

Pour créer une bibliothèque (associer un nom de bibliothèque à un chemin d’accès) en début de session, on utilise l’instruction libname.

Pour supprimer une bibliothèque (dissocier un nom de bibliothèque à un chemin d’accès) avant la fermeture d’une session (pour faire du nettoyage), on utilise également l’instruction libname. Seul le lien entre le nom et le chemin d’accès supprimé, pas son contenu.

libname xxdata 'C:/dev/myproject/data';

Dans cet exemple, le libref xxdata est lié au chemin d’accès C:/dev/myproject/data.

libname xxdata clear;

Dans cet autre exemple, le libref est dissocié du chemin d’accès. Il n’est plus possible d’utiliser xxdata pour désigner C:/dev/myproject/data.

Entre les deux, on peut utiliser autant de fois que nécessaire xxdata devant un dataset présent ou à créer dans le répertoire C:/dev/myproject/data.

*1. Créer la bibliothèque
libname xxdata 'C:/myproject/dev/data';

*2. Le dataset class de la bibliothèque sashelp est utilisé pour créer le dataset male qui sera sauvegardé dans le répertoire C:/myproject/dev/data;

data xxdata.male;
    set sashelp.class (where=(sex='M'));
run;

*3. Les données du dataset male disponibles dans la bibliothèque xxdata sont affichées au moyen d'un proc print;

proc print data=xxdata.male;
run;

*4. Tant que cette instruction n'est pas exécutée, il est possible de voir dans la section "Bibliothèque" de SAS Studio, la bibliothèque xxdata, et donc tous les datasets (fichiers dont l'emplacement peut être indiqué par un libref) présents dans le répertoire C:/myproject/dev/data.;

libname xxdata clear;

Utiliser un autre libref pour désigner le même emplacement

Lors d’une prochaine session où après l’instruction libname xxdata clear;, il est possible d’utiliser un nom de bibliothèque identique ou différent pour pointer vers C:/dev/myproject/data;

Ici la bibliothèque s’appelle xxdata_m.

libname xxdata_m 'C:/dev/myproject/data';

proc print data=xxdata_m.male;
run;

libname xxdata_m clear;

Utiliser le même libref pour désigner un nouvel emplacement

Lors d’une prochaine session où après l’instruction libname xxdata clear;, il est possible d’utiliser xxdata pour pointer vers un autre répertoire.

Ici le chemain d’accès est C:/dev/myproject2/data.

libname xxdata 'C:/dev/myproject2/data';

data xxdata.female;
set sashelp.class (where=(sex='F'));
run;

proc print data=xxdata.female;
run;

libname xxdata clear;