Publié le :
Macro SASHELP

Génération de Dictionnaire de Données (CodeBook) via Macro

Ce code est également disponible en : Deutsch English Español
En attente de validation
Cette macro 'MakeCodeBook' automatise la documentation des tables SAS©. Elle utilise la PROC CONTENTS pour récupérer la liste des variables et leurs attributs, capture la sortie ODS 'Variables' dans une table, trie les résultats par ordre logique des variables (num), et exporte le résultat final dans un fichier CSV à l'emplacement spécifié.
Analyse des données

Type : SASHELP


La macro cible par défaut la table 'sashelp.class', mais peut être redirigée vers n'importe quelle table via les paramètres 'dslib' et 'dsname'.

1 Bloc de code
PROC CONTENTS Data
Explication :
Initialisation de la macro et extraction des métadonnées. L'instruction 'ods output Variables=CodeBook' capture la table de sortie de la PROC CONTENTS contenant la liste des variables dans la table SAS temporaire 'CodeBook'.
Copié !
1%macro MakeCodeBook(dslib=sashelp,dsname=class,outdir=);
2 ods OUTPUT Variables=CodeBook;
3 PROC CONTENTS DATA=&dslib..&dsname;
4 RUN;
2 Bloc de code
PROC SORT
Explication :
Tri de la table des métadonnées 'CodeBook' par la variable 'num', qui représente l'ordre physique des variables dans la table d'origine.
Copié !
1 PROC SORT DATA=CodeBook;
2 BY num;
3 RUN;
3 Bloc de code
PROC EXPORT
Explication :
Exportation de la table de métadonnées triée vers un fichier CSV externe. Le chemin de sortie est construit dynamiquement à l'aide des paramètres macro.
Copié !
1 PROC EXPORT DATA=CodeBook
2 outfile="&outdir/&dsname._CodeBook.csv"
3 dbms=csv replace;
4 RUN;
5%mend MakeCodeBook;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.