Esta macro recorre una lista de datasets especificados por el usuario. Para cada dataset, ejecuta un `PROC CONTENTS` para extraer los metadatos de las variables (nombre, tipo, formato) en una tabla de salida. Luego, imprime esta tabla de resultados utilizando un `PROC PRINT`. Los parámetros permiten especificar la lista de tablas, la biblioteca (por defecto 'work') y el nombre de la tabla de salida.
Análisis de datos
Type : MIXTE
La macro es una macro de utilidad diseñada para funcionar con cualquier dataset SAS, ya sea que provenga de la biblioteca SASHELP (como en los ejemplos), que se cree internamente (a través de datalines) o que se importe de una fuente externa.
1 Bloque de código
MACRO
Explicación : La macro 'contents' toma como parámetros una lista de tablas ('datasets'), una biblioteca ('lib', por defecto 'work') y una tabla de salida ('outds'). Itera sobre cada tabla de la lista usando %DO y %SCAN. Para cada tabla, ejecuta `PROC CONTENTS` para extraer los metadatos de las variables. La instrucción `ODS OUTPUT` redirige la tabla 'Variables' de PROC CONTENTS al dataset de salida especificado por `&outds`. La salida estándar de PROC CONTENTS se suprime a través de `ODS LISTING CLOSE`. Finalmente, `PROC PRINT` se utiliza para mostrar el contenido del dataset de resultados.
¡Copiado!
%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;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : Luke W Johnston, 2014-10-08
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.