Publicado el :
Macro MIXTE

Macro get_append_base para generación de estructura

Este código también está disponible en: Deutsch English Français
Esta macro utiliza PROC CONTENTS para extraer los metadatos de la tabla especificada como parámetro. Luego genera dinámicamente, a través de un paso DATA _NULL_, instrucciones SAS© (paso DATA con instrucciones FORMAT) que escribe en el registro. Este código generado se puede copiar y pegar para inicializar una tabla vacía con la misma estructura, facilitando las operaciones de adición (PROC APPEND). También intenta limpiar la tabla temporal mediante una llamada a una macro externa %delete_dataset.
Análisis de datos

Type : MIXTE


La macro espera un nombre de tabla existente como parámetro (&base_dataset). Crea una tabla temporal 'local_temp' a partir de los metadatos.

1 Bloque de código
MACRO
Explicación :
Definición de la macro que extrae los metadatos, los ordena por número de variable y escribe en el registro el código SAS de definición de formatos. Nota: llama a una macro utilitaria '%delete_dataset' que no está definida en este script.
¡Copiado!
1%macro get_append_base(base_dataset);
2 PROC CONTENTS noprint DATA= &base_dataset. out= local_temp; RUN;
3
4 PROC SORT DATA= local_temp; BY varnum; RUN;
5 
6 DATA _null_;
7 SET local_temp END= last;
8 BY varnum;
9 obs = _N_;
10 ;
11 IF obs = 1 THEN DO;
12 put "***************************************************************************************;";
13 put;
14 put " data stuff;";
15 put " set _null_;";
16 put " format";
17 END;
18 
19 formatted = compress(name) || ' ' || compress(cat(FORMAT,FORMATL,"."));
20 put " " formatted;
21 
22 IF last THEN DO;
23 put " ;";
24 put " run;";
25 put;
26 put "***************************************************************************************;";
27 END;
28 RUN;
29 %delete_dataset(work,local_temp);
30%mend get_append_base;
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.