Publicado el :

Conversión de librería a archivos CARDS

Este código también está disponible en: Deutsch English Français
En espera de validación
Esta macro recorre todas las tablas de una librería especificada (mediante el parámetro 'lib'). Para cada tabla, utiliza la macro %mp_ds2cards para convertir los datos en código SAS© (paso DATA con tarjetas). El resultado se escribe en un directorio de salida definido. El usuario puede elegir consolidar todo el código en un solo archivo ('outfile') o crear un archivo '.sas©' distinto para cada tabla. La macro también gestiona la creación del directorio de destino si es necesario.
Análisis de datos

Type : MIXTO


El script consulta la vista del sistema DICTIONARY.TABLES para listar el contenido de la librería. Luego lee los datos de la librería pasada como parámetro ('lib') para exportarlos.

1 Bloque de código
PROC SQL
Explicación :
Este paso recupera la lista de nombres de tablas (miembros) presentes en la librería especificada por el parámetro &lib consultando el diccionario SAS. La lista se almacena en la macro-variable &memlist.
¡Copiado!
1PROC SQL noprint;
2select distinct lowcase(memname)
3 into: memlist
4 separated BY ' '
5 from dictionary.tables
6 where upcase(LIBNAME)="%upcase(&lib)";
2 Bloque de código
Macro Call
Explicación :
Limpia la ruta del directorio de salida (eliminando las barras finales) y asegura que el directorio exista llamando a la macro de utilidad %mf_mkdir.
¡Copiado!
1%let outloc=%mf_trimstr(&outloc,/);
2%let outloc=%mf_trimstr(&outloc,\);
3 
4/* create the output directory */
5%mf_mkdir(&outloc)
3 Bloque de código
Macro Loop Data
Explicación :
Itera sobre cada tabla encontrada en la librería. Llama a la macro %mp_ds2cards para generar el archivo CARDS correspondiente. Gestiona la lógica de añadir a un único archivo (append=YES) o crear archivos separados según el valor del parámetro &outfile.
¡Copiado!
1%DO x=1 %to %sysfunc(countw(&memlist));
2 %let ds=%scan(&memlist,&x);
3 %mp_ds2cards(base_ds=&lib..&ds
4 ,maxobs=&maxobs
5 ,random_sample=&random_sample
6 %IF "&outfile" ne "0" %THEN %DO;
7 ,append=YES
8 ,cards_file="&outloc/&outfile"
9 %END;
10 %ELSE %DO;
11 ,append=NO
12 ,cards_file="&outloc/&ds..sas"
13 %END;
14 )
15%END;
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 : Allan Bowe