Bibliothèque permanente#
Comme nous avons vu dans le chapitre précédent, SAS a besoin d’importer les données de n’importe quel format afin que l’utilisateur puisse appliquer les analyses souhaitées. Toutesfois, afin d’être plus productif, il est plus simple de conserver ces données quelque part où nous ne sommes pas obligés de refaire cette opération d’importation d’un jeu de données à chaque fois que nous en avons besoin. Surtout lorsque nous y effectuons des changements tels que des ajouts de variables ou des calculs qui prennent du temps à exécuter.
SAS nous permet de sauvegarder ces données dans ce qu’on appelle une bibliothèque ou (library)
Mais d’abord, rappelons-nous comment les données ont organisés dans SAS. Ci-dessous, un parallèle avec ce que nous sommes habitués de voir avec des tableurs tel qu’Excel de Microsoft ou Calc de LibreOffice;
Excel (ou autre) | SAS |
---|---|
feuille | data set |
colonne | variable |
ligne | observation |
Lorsqu’on créait un jeu de données avec la procédure data
comme suit;
filename mesDos 'data/emprunt_bancaire.csv';
data loan;
infile mesDos dsd
firstobs=2;
input Loan_ID $ loan_status $ Principal terms age education $ Gender $;
run;
En réalité, SAS sauvegarde les données sous le format work.loan
, le work
qui précède loan
est le nom de la bibliothèque (library reference) temporaire que SAS crée par défaut. SAS y insère tous les jeux de données si l’utilisateur n’en définit pas une.
D’ailleurs, dans tous les exemples que nous avons réalisés jusqu’à présent, nous avons créé des jeux de données dans une bibliothèque temporaire nommée WORK
. Vous pouvez le vérifier en affichant les données comme suit:
proc print data=work.loan noobs;
run;
Loan_ID | loan_status | Principal | terms | age | education | Gender |
---|---|---|---|---|---|---|
xqd20166 | PAIDOFF | 1000 | 30 | 45 | High Sch | male |
xqd20168 | PAIDOFF | 500 | 30 | 50 | Bechalor | female |
xqd20160 | PAIDOFF | 1000 | 30 | 33 | Bechalor | female |
xqd20160 | PAIDOFF | 895 | 15 | 27 | college | male |
xqd20160 | PAIDOFF | 1000 | 30 | 28 | college | female |
Remarquez qu’ici nous ajoutons work.
même si nous ne le précisons pas à la création du jeu de données.
Description de la bibliothèque#
Nous pouvons voir la description des bibliothèques permanentes que nous avons créées avec la commande PROC CONTENTS
.
proc contents data=act3035.notes_examens;
run;
The CONTENTS Procedure
Data Set Name | ACT3035.NOTES_EXAMENS | Observations | 10 |
---|---|---|---|
Member Type | DATA | Variables | 4 |
Engine | V9 | Indexes | 0 |
Created | 09/09/2017 18:40:49 | Observation Length | 80 |
Last Modified | 09/09/2017 18:40:49 | Deleted Observations | 0 |
Protection | Compressed | NO | |
Data Set Type | Sorted | NO | |
Label | |||
Data Representation | SOLARIS_X86_64, LINUX_X86_64, ALPHA_TRU64, LINUX_IA64 | ||
Encoding | utf-8 Unicode (UTF-8) |
Engine/Host Dependent Information | |
---|---|
Data Set Page Size | 65536 |
Number of Data Set Pages | 1 |
First Data Page | 1 |
Max Obs per Page | 817 |
Obs in First Data Page | 10 |
Number of Data Set Repairs | 0 |
Filename | /mnt/hgfs/myfolders/cody/librairies/notes_examens.sas7bdat |
Release Created | 9.0401M4 |
Host Created | Linux |
Inode Number | 2221 |
Access Permission | rwxrwx--- |
Owner Name | root |
File Size | 128KB |
File Size (bytes) | 131072 |
Alphabetic List of Variables and Attributes | |||
---|---|---|---|
# | Variable | Type | Len |
1 | code_perm | Char | 50 |
2 | examen1 | Num | 8 |
3 | examen2 | Num | 8 |
4 | examen3 | Num | 8 |
Nous pouvons aussi faire une description de tous les ensembles de données avec l’option _ALL_
contenus dans une bibliothèque
title "Listing All the SAS Data Sets in a Library";
proc contents data=act3035._all_ nods;
run;
The CONTENTS Procedure
Directory | |
---|---|
Libref | ACT3035 |
Engine | V9 |
Physical Name | /mnt/hgfs/myfolders/data |
Filename | /mnt/hgfs/myfolders/data |
Inode Number | 557 |
Access Permission | rwxrwx--- |
Owner Name | root |
File Size | 1KB |
File Size (bytes) | 576 |
# | Name | Member Type | File Size | Last Modified |
---|---|---|---|---|
1 | NOTES_EXAMENS | DATA | 128KB | 01/16/2018 20:32:37 |
Références#
Guide, A. Programmer’S. « Learning SAS® by Example. »
Comment créer une bibliothèque permanente?#
Nous créons une bibliothèque en donnant simplement le nom de cette dernière dans la commande
LIBNAME
et de spécifier dans quel répertoire nous voulons la stocker.La longueur du nom de la bibliothèque ne doit pas dépasser 8 caractères et doit respecter les règles de validation de SAS (caractères spéciaux …etc.)
Allons-y avec un exemple où je veux créer une bibliothèque permanente appelée
act3035
dans le répertoiredata
. Dans cet exemple, j’aurais pu mettre ma bibliothèque permanente dans un autre répertoire qui seraitrepertoire/sous_repertoire/data
The SAS System
Comme expliqué en classe, un des avantages de prendre l’habitude de travailler avec des bibliothèques permanentes, est de ne pas refaire le travaille de ETL (extraire les données, les transformer et les importer).
En plus, si nous avons un (ou plusieurs) petit ensemble de données, ce n’est pas très pénalisant de travailler avec les bibliothèques temporaires, et nous pouvons aisément nous en sortir avec la taille de la mémoire de nos ordinateurs. Toutefois, dès que nous avons des bases de données plus importantes, comme c’est le cas en pratique, il est très pertinent de créer des bibliothèques permanentes et d’y stocker nos ensembles de données.