Publicado el :
Macro EXTERNE

Macro AHGsetprint: Fusión y Formato de Tablas SAS

Este código también está disponible en: Deutsch English Français
En espera de validación
La macro itera sobre una lista de conjuntos de datos proporcionados como parámetro. Para cada conjunto de datos, crea una copia temporal, añade opcionalmente columnas de identificación (orden, nombre de origen), y convierte todos los datos a tipo de carácter mediante llamadas a otras macros utilitarias (AHGalltocharnew, AHGmergeprint). Los conjuntos de datos procesados se concatenan luego en una tabla única, se limpian y, opcionalmente, se imprimen.
Análisis de datos

Type : EXTERNE


Los datos de origen se definen mediante el parámetro de macro &dsns, que espera una lista de nombres de tablas existentes.

1 Bloque de código
DATA STEP Data
Explicación :
Bucle de procesamiento: para cada tabla especificada en la entrada, creación de una tabla temporal, adición de variables de metadatos (orden, origen) y conversión del contenido a formato de carácter a través de macros externas.
¡Copiado!
1%DO i=1 %to &dsnN;
2 %let item=%scan(&dsns,&i,%str( ));
3 %AHGgettempname(onedsn);
4 %let alldsn=&alldsn &onedsn;
5 DATA &onedsn;
6 %IF %AHGnonblank(&ord) %THEN &ord=&i;;
7 %IF %AHGnonblank(&BY) %THEN %DO;
8 FORMAT &BY $40.; &BY="&item";
9 %END;
10 SET &item;
11 RUN;
12 %AHGalltocharnew(&onedsn,out=&onedsn);
13 /* ... collecte des variables et appel AHGmergeprint ... */
14%END;
2 Bloque de código
DATA STEP Data
Explicación :
Paso de concatenación final: agrupación de todas las tablas temporales preparadas en una sola tabla de salida.
¡Copiado!
1DATA &out;
2 SET &alldsn;
3RUN;
3 Bloque de código
MACRO CALL
Explicación :
Post-procesamiento: selección de las variables a conservar, limpieza de las cadenas de caracteres (trim) y visualización opcional del resultado.
¡Copiado!
1%IF &keep %THEN %AHGrenamekeep(&out,names=&allvar,keepall=0);
2%ELSE %AHGrenamekeep(&out,keepall=0);
3%AHGtrimdsn(&out);
4 
5%IF &PRINT %THEN %AHGprt;
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.