Annonce

Bienvenue sur le site support de mes ouvrages d'introduction à SAS

La 4ème édition de mon ouvrage est toujours disponible !

Où trouver cet ouvrage ?


#1 05-04-2018 12:00:23

SAS-SR
Administrateur
Lieu: Université d'Orléans
Date d'inscription: 01-09-2008
Site web

[archive] Les vues SASHELP

Je recycle...

Dans le master ESA, on propose assez souvent des ateliers d'appliation à la suite de certains cours. J'ai ainsi proposé à mes étudiants de M1 l'atelier suivant afin de les aider à travailler leur cours de langage macro sous SAS.

je me dis que ça nous fait là un très beau sujet des beaux mercredis...


Voici le texte que je leur ai transmis :
Les vues SASLHELP

Durant le cours de langage macro sous SAS, nous avons utilisé une vue SASHELP : la vue VMACRO
VMACRO est une vue de la table des symboles, la table dans laquelle SAS enregistre, entre autre, les noms de macro et leur valeur.

Certes, mais qu’est-ce qu’une vue ?

C’est un programme compilé, soit en langage DATA (on parle alors de DATA Step view), soit en SQL (vue SQL) qui permet de créer une
table et que vous allez pouvoir utilisé comme une table (il y a aussi des vues SAS/ACCESS mais nous n'en parlerons pas).

Démonstration :

Code:

Data coco / view=coco ;
   X=round(rand('uniform')*100);
   Y=datetime();
Format y datetime.;
Run;

COCO est une vue.

Faites un PROC PRINT sur cette vue. Attendez quelques secondes et refaites un nouveau PROC PRINT. Le résultat est différent… Dans la vue COCO, il n’y a aucune donnée, il n’y a que l’étape data donnée plus haut sous sa forme compilée et à chaque fois que vous faites appel à cette vue, il y a exécution du programme.

Les vues SASHELP sont donc elle aussi des vues mais ce sont des vues SQL : il n’y a donc « derrière » ces vues qu’une requête SQL. (Je sais, vous n’y connaissez rien en SQL mais ce n’est pas bien grave pour ce sujet).

Regardons ce qu’il y a derrière la vue VMACRO :

Code:

PROC SQL ; 
DESCRIBE VIEW sashelp.vmacro;
QUIT;

Et vous obtenez, dans votre JOURNAL, le résultat suivant :

Code:

2595  PROC SQL ;
2596  DESCRIBE VIEW sashelp.vmacro;
NOTE: SQL view SASHELP.VMACRO définie en tant que :

        select *
          from DICTIONARY.MACROS;

2597  QUIT;

Cette vue est en fait une reproduction à l’identique d’une table appelée MACROS et présente dans une bibliothèque DICTIONARY. En fait, toutes les vues SASHELP sont des reproductions, plus ou moins à l’identique, de tables présentes dans la bibliothèque DICTIONARY.
Évidemment, à la lecture du nom de la bibliothèque, vous êtes choqué ! Comment ça ? Une bibliothèque doit avoir un nom composé au maximum de 8 lettres ! Et là, il y en a 10 !

Et oui… on ne vous dit pas tout…

DICTIONARY est une bibliothèque un peu particulière… déjà, inutile de perdre votre temps à essayer de faire un PROC PRINT sur DICTIONARY.MACROS, il vous dira que le nom de la bibliothèque ne respecte pas les conventions propres à SAS.

En fait, vous ne pouvez accéder aux tables de la bibliothèque DICTIONARY qu’avec PROC SQL.

Revenons à nos vues SASLHELP.

Elles sont TRES utiles ces vues puisque tout ce qui caractérise votre environnement SAS au cours d’une session se trouve dans ces vues et que les informations contenues dans ces vues, tirées des tables de la bibliothèque DICTIONARY, sont constamment mises à jour.

Lisez ce papier pour avoir une idée de ce que l’on peut trouver dans ces vues :
http://support.sas.com/resources/papers … 5-2010.pdf

et regardez aussi ce papier
http://www2.sas.com/proceedings/sugi26/p017-26.pdf

pour voir :
1-    Ce qu’on peut faire avec ces vues
2-    Et surtout, regardez les annexes !!

A la lecture du premier document, vous devez vous dire « mais il y a plein de trucs là-dedans qui pourraient être super utiles ! «  (<- si, si ! c’est effectivement ce que vous devez vous dire !) et vous devez, en votre for intérieur ajouter « sauf que ça n’a pas l’air simple… ce serait bien de pouvoir disposer d’une sorte de dictionnaire, qui présente les variables présentes dans chaque vue SASHELP, ce qu’elles mesurent ainsi qu’un court extrait de la vue (si la vue contient des observations). »

Et bien cette sorte de dictionnaire, c’est à vous de le produire et bien entendu, c'est un joli macro programme qui doit réaliser ce dictionnaire

Il y a une quarantaine de vues SALHELP, je veux un document d'autant de pages (HTML ou PDF).

Sur chaque page, je veux (au moins) en haut, le nom de la vue, le détail des variables présentes dans la vues (faites un PROC CONTENTS sur une vue – je souhaite voir le second tableau du résultat de ce PROC CONTENTS puisque c’est dans ce tableau que j’observe les détails que je veux voir pour chacune des variables), un extrait de la vue (une ou deux observations me suffiront).

cette page de l'aide SAS devrait vous intéresser :
http://documentation.sas.com/?docsetId= … ;locale=en

Ajoutez ce que vous voulez afin de disposer par vue SALHELP, d’une fiche la plus informative possible.


à la semaine prochaine...


Ce sujet est maintenant archivé - seuls les utilisateurs inscrits de www.sas-sr.com peuvent consulter l'intégralité du sujet et les réponses aux questions posées.
pour vous identifier, suivez ce lien
pour vous inscrire, suivez ce lien

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB
Traduction par FluxBB.fr
Flux RSS