domingo, 31 de enero de 2016

MACROVARIABLES LOCALES Y GLOBALES EN SAS

Hoy nos referiremos nuevamente a las macros del lenguaje SAS, concretamente a la diferencia entre las macrovariables locales y las globales.

Código macro


Las macrovariables locales sólo están disponibles durante la ejecución de un programa macro. Su valor no puede ser cambiado, con lo cual desaparecen cuando termina el despliegue de dicha macro.

En cambio, las globales están disponibles durante toda la sesión de SAS. A no ser que sean desactivadas por el comando %symdel.

Hay una importante diferencia práctica entre estos dos tipos de macrovariables. Un uso intensivo de macros globales durante la ejecución de un programa pone en peligro la memoria interna del equipo desde el que se procesa SAS. Mientras que el uso de macros locales no es tan inquietante o, al menos, está limitada únicamente por la potencia de recursos que dicho subprograma macro comprometa.

Las macros locales pueden ser creadas a través de los parámetros de una macrodefinición, a partir del paso %let, a través de los comandos symput y symputx del paso data, a través del select del comando proc sql o a través del comando %local (que reserva variables locales para una posterior definición). Mientras que las macros globales pueden ser creadas por un %let, por los comandos symput y symputx, por el select de proc sql y por el comando %global... siempre y cuando estos pasos se encuentren fuera de un programa macro.

No hay comentarios:

Publicar un comentario