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!
%do i=1 %to &dsnN;
%let item=%scan(&dsns,&i,%str( ));
%AHGgettempname(onedsn);
%let alldsn=&alldsn &onedsn;
data &onedsn;
%if %AHGnonblank(&ord) %then &ord=&i;;
%if %AHGnonblank(&by) %then %do;
format &by $40.; &by="&item";
%end;
set &item;
run;
%AHGalltocharnew(&onedsn,out=&onedsn);
/* ... collecte des variables et appel AHGmergeprint ... */
%end;
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!
data &out;
set &alldsn;
run;
1
DATA &out;
2
SET &alldsn;
3
RUN;
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.
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.
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.