Manual de Introducción al SAS ® ____________________________________________________________________________
10.
ANEXO 2: PROGRAMACIÓN MACRO
10.1. Introducción La programación Macro es una herramienta muy útil para estandarizar, extender y la progamación clásica en código SAS. Entre otras virtudes, permite reducir en gran medida la cantidad de código necesario para las tareas más frecuentes. En resumen, se podría decir que la programación Macro permite asignar a un conjunto de caracteres o de sentencias de código un nombre clave. Esta palabra clave será sustituida por el valor asignado al ser ejecutado y compilado el correspondiente código. La ventana de programación para crear Macros, es la ventana habitual de sintaxis. La programación Macro tiene dos componentes principales: -
El procesador Macro, encargado de “traducir”. El lenguaje Macro, la sintaxis que se debe utilizar ara comunicarse con el procesador Macro.
Al compilar un texto, existen dos caracteres que activan al procesador Macro: -
10.1.1.
& : &nombre , que designará a las variables Macro. % : %nombre , que designará a las Macros creadas por nosotros o ya residentes en el sistema.
Variables Macro
Ejemplo: %let city = Barcelona; Titile “Ciudad: &city”;
->
Title “Ciudad: Barcelona”;
La instrucción %let permite asignar a un nombre un conjunto de caracteres utilizando la sintaxis: % let nombre = literal ; Las referencias a variables Macro ya creadas siempre serán precedidas por el símbolo: “&”. Los nombres de variables Macro no pueden contener caracteres extraños cómo: ; , espacio “ ‘ AND OR , etc. Al utilizar referencias de variables Macro en expresiones entre comillas es necesario utilizar las comillas dobles: “ para obtener la asignación deseada. En caso de comillas simples: ‘ no se obtiene el valor correcto.
10.1.2.
Generación de Código mediante Macros
Ejemplo: %macro b; a %mend b; proc print data=%b; run;
->
proc print data=a; run;
_____________________________________________________________________________________ Servei d'Estadística Universitat Autònoma de Barcelona
Pág. 47 de 50