Cette macro parcourt une liste de datasets spécifiés par l'utilisateur. Pour chaque dataset, elle exécute une `PROC CONTENTS` pour extraire les métadonnées des variables (nom, type, format) dans une table de sortie. Ensuite, elle imprime cette table de résultats à l'aide d'une `PROC PRINT`. Les paramètres permettent de spécifier la liste des tables, la bibliothèque (par défaut 'work') et le nom de la table de sortie.
Analyse des données
Type : MIXTE
La macro est une macro utilitaire conçue pour fonctionner avec n'importe quel dataset SAS, qu'il provienne de la bibliothèque SASHELP (comme dans les exemples), qu'il soit créé en interne (via datalines) ou qu'il soit importé d'une source externe.
1 Bloc de code
MACRO
Explication : La macro 'contents' prend en paramètres une liste de tables ('datasets'), une bibliothèque ('lib', par défaut 'work') et une table de sortie ('outds'). Elle boucle sur chaque table de la liste en utilisant %DO et %SCAN. Pour chaque table, elle exécute `PROC CONTENTS` pour extraire les métadonnées des variables. L'instruction `ODS OUTPUT` redirige la table 'Variables' de PROC CONTENTS vers le dataset de sortie spécifié par `&outds`. La sortie standard de PROC CONTENTS est supprimée via `ODS LISTING CLOSE`. Finalement, `PROC PRINT` est utilisée pour afficher le contenu du dataset de résultats.
Copié !
%macro contents(datasets, lib=work, outds=tmp);
* Count the number of datasets provided and start the loop;
%do i = 1 %to %sysfunc(countw(&datasets));
* Extract the i-th dataset from the list;
%let dsn = %scan(&datasets, &i);
* Outputting to the log file;
%put Checking contents of the dataset &i.;
* Suppress printing to the listings;
ods listing close;
proc contents order=casecollate data=&lib..&dsn;
* Output the dataset;
ods output Variables=&outds (keep=Num Variable Type Format);
run;
ods listing;
* Print the dataset;
proc print data=&outds;
run;
%end;
%mend contents;
1
%macro contents(datasets, lib=work, outds=tmp);
2
3
* Count the number of datasets provided and start the loop;
4
%DO i = 1 %to %sysfunc(countw(&datasets));
5
6
* Extract the i-th dataset from the list;
7
%let dsn = %scan(&datasets, &i);
8
9
* Outputting to the log file;
10
%put Checking contents of the dataset &i.;
11
12
* Suppress printing to the listings;
13
ods listing close;
14
PROC CONTENTS order=casecollate DATA=&lib..&dsn;
15
16
* Output the dataset;
17
ods OUTPUT Variables=&outds (keep=Num Variable Type FORMAT);
18
RUN;
19
ods listing;
20
21
* Print the dataset;
22
PROC PRINTDATA=&outds;
23
RUN;
24
%END;
25
26
%mend contents;
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.
Informations de Copyright : Luke W Johnston, 2014-10-08
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.