Publicado el :
Informes CREATION_INTERNE

Informe de Metadatos de Variables

Este código también está disponible en: Deutsch English Français
En espera de validación
Esta macro SAS©, `MetaShort`, toma como parámetro el nombre de una biblioteca SAS© (`lib`). Si no se proporciona ningún nombre de biblioteca, utiliza el valor de la macro-variable `&pname`. Comienza definiendo un formato personalizado para mostrar los tipos de variables ('Char' para caracteres, 'Num' para numéricos). Luego, utiliza `PROC DATASETS` para recopilar los metadatos de todas las tablas de datos de la biblioteca especificada y los almacena en una tabla temporal llamada `WORK.TEMP`. A continuación, se ejecuta una consulta `PROC SQL` para recuperar la ruta física de la biblioteca de `DICTIONARY.MEMBERS`. El informe se genera en HTML5 (`meta.html`) en esta ruta física a través de `PROC REPORT`, utilizando la tabla `WORK.TEMP`. El informe muestra el nombre del dataset, el nombre de la variable, su tipo (formateado), su longitud, su formato, su informat y su etiqueta. Se inserta una línea en blanco entre los grupos de variables para cada dataset para mejorar la legibilidad. Finalmente, los destinos ODS se cierran y se restablecen.
Análisis de datos

Type : CREATION_INTERNE


Los datos fuente para el informe son generados internamente por `PROC DATASETS` que extrae los metadatos de las tablas de la biblioteca especificada por el usuario. `DICTIONARY.MEMBERS` es una vista de sistema SAS utilizada para recuperar la ruta de la biblioteca.

1 Bloque de código
Macro
Explicación :
Definición de la macro `MetaShort` que toma un parámetro `lib`. Si `lib` está vacío, la macro-variable `&pname` se utiliza como valor predeterminado para la biblioteca.
¡Copiado!
1%macro MetaShort(lib);
2%IF %superq(lib)= %THEN %let lib=&pname;
3 
2 Bloque de código
PROC FORMAT
Explicación :
Crea un formato personalizado `type.` para mostrar los valores numéricos 1 y 2 como cadenas de caracteres ('Num' y 'Char'), representando los tipos de variables.
¡Copiado!
1 PROC FORMAT;
2 value type 2="Char"
3 1 = "Num";
4 RUN;
3 Bloque de código
PROC DATASETS Data
Explicación :
Utiliza `PROC DATASETS` para extraer los metadatos de todas las tablas de datos (`memtype=data`) de la biblioteca especificada (`&lib`). La información de contenido se almacena en la tabla temporal `WORK.TEMP`.
¡Copiado!
1 PROC DATASETS library=&lib memtype=DATA ;
2 contents DATA=_all_ out=work.temp ;
3 RUN;
4 QUIT;
4 Bloque de código
PROC SQL
Explicación :
Se ejecuta una consulta `PROC SQL` para recuperar la ruta física (`path`) de la biblioteca (`&lib`) de la vista de sistema `DICTIONARY.MEMBERS`. La ruta se almacena en la macro-variable `&libpath` y los espacios se eliminan.
¡Copiado!
1 PROC SQL noprint;
2 select path into: libpath
3 from Dictionary.members
4 where LIBNAME =upcase("&lib");
5 QUIT;
6 
7 %let libpath=%sysfunc(strip(&libpath));
5 Bloque de código
PROC REPORT
¡Copiado!
1 title "Datasets in &lib";
2 odds html5 path="&libpath" (url="")
3 body="meta.html";
4 PROC REPORT DATA=work.temp headline headskip spacing=2 ;
5 columns memname name type LENGTH FORMAT informat label;
6 define memname /order order=DATA "Dataset" ;
7 define name /display "Variable";
8 define type /display FORMAT=type. "Type";
9 define LENGTH /display "Length";
10 define FORMAT /display "Format";
11 define informat /display "Informat";
12 define label /display "Label";
13 compute after memname;
14 line ' ';
15 endcomp;
16 RUN;
17 odds html5 close;
18 odds html;
19 title ;
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 : ************************************************************************* * MetaShort * report the metadata of variables in the given lib including name, type, * length, format, informat, and label * *************************************************************************