Search
Les librarires dans SAS Studio

Tout d'abord, afin de créer une librairie (bibliothèque), il faut d'abord commencer par écrire la "fonction" libname suivie du nom de la bibliothèque qui ne peut dépasser 8 caractères.

Ensuite, il faut pointer cette librairie vers le répertoire qui contient vos données, soit sous le format .sas7bdat ou autre (.csv, .txt, ...etc)

Lecture de la librarire partagée

Pour le premier exemple, nous commençons par la librairie appelée lib_prof qui pointe vers le répertoire "/home/ec2913580/my_courses/nmeraihi1/data" qui est en lecture seulement.

Il faut noter que le partage de répertoire est une caractéristique de SAS Studio qui permet de partager des documents entre le prof et les étudiants.

libname SAS

On peut voir que la librairie a été créée avec succès

libname SAS

On peut clairement voir qu'il est possible de voir le contenu de tous les fichiers qui se trouve dans cette bibliothèque.

proc print data=lib_prof.eq_2 (firstobs = 2 obs = 5) noobs;
run;

libname SAS

Copie des tables avec data

Remarquez qu'il est possible de copier toute une table ou une partie seulement d'une table vers la librairie temporaire WORK.

Dans l'exemple suivant, nous créons une extraction de la table eq_2 où l'on s’intéresse aux assurés qui ont les caractéristiques suivant:

  • sexe -> "M"
  • type_prof -> qui finit avec eur
  • le cout1 > 10000

ou l'on garde seulement les quatre variables suivantes: nbsin type_prof sexe cout1

data copie_eq2_wrk;
    set lib_prof.eq_2;
    where type_prof like "%eur" and sexe like "M";
    keep nbsin type_prof sexe cout1;
    if cout1>10000;
 run;

libname SAS

Remarquer que lorsqu'on veut faire la même opération dans la librairie lib_prof. Nous obtenons un message d'erreur.

libname SAS

Écriture des donnés

Vous avez trois solutions:

Dans Work

Vous pouvez faire des lectures à partir de la librairie lib_prof et faire des écritures dans la librairie WORK comme ce qu'on a fait précédemment: libname SAS

Ecrire dans votre propre lib

Vous pouvez également faire des lectures de la librairie lib_prof et créer une autre librairie lib_moi dans laquelle vous pouvez faire des lectures ET écritures.

Votre librairie lib_moi, doit pointer vers votre répertoire personnel. Dans l'exemple ci-dessous, je l'ai nommé rep_vide

libname lib_prof "/home/ec2913580/my_courses/nmeraihi1/data";

proc print data=lib_prof.eq_2 (firstobs = 2 obs = 5) noobs;
run;

libname lib_moi "/home/ec2913580/my_courses/nmeraihi1/rep_vide";
data lib_moi.copie_eq2_wrk;
    set lib_prof.eq_2;
    where type_prof like "%eur" and sexe like "M";
    keep nbsin type_prof sexe cout1;
    if cout1>10000;
 run;

libname SAS

Tout importer dans votre répertoire

Si vous ne voulez pas vous tromper avec tous les noms de librairie, vous pouvez en créer qu'une seule lib et importer tout le contenu du répertoire du prof vers un répertoire qui vous appartient.

Un inconvénient avec cette méthode, est que s'il y'a des mises à jour dans le répertoire du prof, vous n'aurez pas cette mise à jours, il faut importer à nouveau cette librairie pour avoir accès aus ajouts, modifications...etc.

Le deuxième inconvénient, est que ça peut être lourd d'importer le contenu du répertoire prof si ce dernier est volumineux.

Mais d'abord, il faut copier le répertoire

libname SAS

Ensuite écrire votre code SAS

libname SAS

Export de fichier

Notez qu'il est possible d'exporter un fichier en particulier au avec la procédure proc export. Dans l'exemple ci-dessous, j'exporter deux fichiers;

  • le premier est la table PMT de la librairie libprfM que j'exporte dans mon répertoire rep_vide sous le format .csv avec l'option dbms=csv.
  • le second est un est la table cars_info de la librairie lib_prof que j'exporte dans mon répertoire rep_vide sous le format .sas7bdat avec l'option dbms=dlm.

Remarque que j'ajoute l'option replace dans mes deux procédure afin de remplacer le fichier importé si ce dernier se trouvait déjà dans mon répertoire.

libname SAS