Hoy hablamos de las Macros SAS para principiantes y de cómo la macro SAS nos facilita la vida reduciendo la redundancia o repetitividad de un código. SAS Macro proporciona una manera increíble de hacer un proceso fácil y automático. Aquí veremos diferentes Variables de Macro SAS, funciones de Macro en el Lenguaje de Programación SAS. Además, aprenderemos los componentes del código de las macros SAS y algunos beneficios de las macros SAS
Veamos cómo funcionan las macros SAS.
No te quedes obsoleto &consigue un Pink Slip
Sigue a DataFlair en Google News &Mantente a la vanguardia
1. ¿Qué es una macro SAS?
Las macros básicamente ayudan a reutilizar el código en diferentes lugares múltiples veces sin tener que escribir todo el código una y otra vez. Esto no sólo ahorra tiempo sino que resulta en un código libre de errores.
Entendamos esto con un ejemplo:
proc print data=Policysnapshot;where policydate='09Sep14'd;title "Below are the policy detail for 09-Sep-14";Run;
El código SAS de arriba está escrito para extraer los detalles del nivel de política para el 09-Sep-14 y digamos que el usuario necesita ejecutar este código diariamente después de cambiar la fecha (en ambos lugares) a la fecha actual.
Ahora, veamos el mismo código utilizando macros SAS.
Proc Print Data=Sales.Policysnapshot;Where policydate="&sysdate9"d;Title "Below are the policy detail for %sysdate9";Run;
En este caso, el usuario no necesita proporcionar un valor para la fecha actual. El código escogerá automáticamente una fecha actual de un sistema.
No olvide leer – Funciones SAS
Beneficios del uso de macros SAS
Las macros SAS nos permiten:-
- Facilitar nuestro trabajo al reutilizar múltiples veces un código similar después de definirlo uno.
- Hacer cambios en una variable en un solo lugar y reflejarlos en múltiples lugares.
- Dirigir los datos de su programa, es decir, dejar que SAS decida qué hacer en función de los valores reales de los datos
Sobre todo, ayuda a reducir los esfuerzos necesarios para leer y escribir el código SAS.
Componentes del código de macros SAS
El código de macros SAS tiene dos componentes: Las macros y las variables de las macros. En un programa SAS, se han referido de manera diferente como:-
- &Nombre se refiere a la Macro Variable
- %Nombre se refiere a la Macro
Macro Variables SAS
Una macro variable es igual que una variable estándar, excepto que su valor no es un conjunto de datos y sólo tiene un valor de un solo carácter. El valor de una macrovariable puede ser el nombre de una variable, un número o cualquier texto que quiera sustituir en su programa.
El ámbito de una macrovariable puede ser local o global, dependiendo de cómo la hayamos definido. Si está definida dentro de un programa de macros, el ámbito es local (sólo disponible para ese código de macro). Sin embargo, si la hemos definido fuera (en el cuerpo principal), entonces podemos utilizarla en cualquier parte del programa SAS.
Utilizamos la sentencia %LET para crear y asignar un valor a las macrovariables.
% LET <Nombre de la macrovariable>=Valor;
El valor de la macrovariable en la sentencia %Let puede ser cualquier cadena y tiene las siguientes características:-
- Puede tener cualquier longitud entre 0 y 65,534 caracteres
- Los valores numéricos también se almacenan como una cadena de caracteres
- Las expresiones matemáticas no se evalúan
- Las comillas también pueden almacenarse como parte de un valor
- Los espacios en blanco iniciales y finales se eliminan antes de la asignación
SAS Las variables de macro se referencian utilizando un ampersand (&) seguido del nombre de la variable de macro.
No olvide comprobar – Funciones de cadena SAS o funciones de carácter
&<Nombre de la variable macro>
Ejemplo:-
Nombre de la variable macro
También podemos declarar múltiples variables macro y utilizarlas en diferentes lugares del código SAS. La macro variable no se resuelve cuando acceden dentro de comillas simples. Por lo tanto, debemos utilizar comillas dobles para referenciarlas.
;
macrovariable-1 <…macrovariable-n>
es el nombre de una o más macrovariables SAS.
La sentencia %GLOBAL crea una o más macrovariables globales y asigna valores nulos a las variables. Las variables de macro globales son variables que están disponibles durante toda la ejecución de la sesión o trabajo SAS.
Una variable de macro creada con una sentencia %GLOBAL tiene un valor nulo hasta que se le asigna algún otro valor. Si ya existe una macrovariable global y se especifica esa variable en una sentencia %GLOBAL, el valor existente no se modifica.
Debe aprender – Qué es la sintaxis SAS y cómo podemos utilizarlas
ii. Variables Macro Locales SAS
La sintaxis de una variable Macro Local en la Programación SAS:
%LOCAL macro-variable-1 <…macro-variable-n>;
macro-variable-1 <…macro-variable-n>
es el nombre de una o más macro variables
La sentencia %LOCAL crea una o más macro variables locales. Una macro variable creada con %LOCAL tiene un valor nulo hasta que se le asigna algún otro valor. Las variables de macro locales son variables que sólo están disponibles durante la ejecución de la macro en la que están definidas.
Utilice la sentencia %LOCAL para asegurarse de que las variables de macro creadas anteriormente en un programa no sean modificadas inadvertidamente por valores asignados a variables con el mismo nombre en la macro actual. Si una variable de macro local ya existe y usted especifica esa variable en una sentencia %LOCAL, el valor existente permanece sin cambios.
Entender el concepto – Conjunto de datos SAS – Especial & Conjunto de datos incorporado en SAS
iii. Comparación – Variables Globales vs Locales
- Tanto la sentencia %LOCAL como la sentencia %GLOBAL crean macro variables con un ámbito específico. Sin embargo, la sentencia %LOCAL crea variables de macro locales que sólo existen durante la ejecución de la macro que contiene la variable, y la sentencia %GLOBAL crea variables de macro globales que existen mientras dure la sesión o el trabajo.
- Si define una variable de macro local y una variable de macro global con el mismo nombre, la instalación de la macro utiliza el valor de la variable local durante la ejecución de la macro que contiene esa variable local. Cuando la macro que contiene la variable local no se está ejecutando, la instalación de macros utiliza el valor de la variable global.
Funciones de macros SAS
Estas funciones de macros SAS tienen una sintaxis similar, en comparación con sus funciones homólogas en los pasos de datos y también devuelven resultados de manera similar.
Función %UPCASE()
Utilizamos esta función para convertir el caso de las letras a mayúsculas:
Sintaxis:- %UPCASE (Argumento)
Ejemplo:-
%Let heading=this is detail of country;Proc Print Data=Orion.Country;Title %UPCASE(&heading);Run;
Imprimirá el título como «ESTE ES EL DETALLE DEL PAÍS».
Explora las principales aplicaciones de la programación SAS
ii. Función %SUBSTR()
Esta función devuelve el número de caracteres dado a partir de la posición especificada.
Sintaxis:- %SUBSTR (argumento, posición )
Si no se suministra un número de caracteres, una función %SUBSTR devolverá los caracteres a partir de la posición dada hasta el final de la cadena.
Ejemplo:-
%Let abc=this is detail of country;%LET def=%SUBSTR(&abc,19,7);Proc Print Data=Orion.Country;Title %Upcase(&def);Run;
Resumen
Por lo tanto, en este tutorial de Macros SAS. Espero que hayas aprendido algunas nuevas formas de manipular datos en SAS. Ahora podrás ahorrar mucho tiempo incorporando macros SAS en tu programa. Manténgase en sintonía para aprender más cosas tan interesantes en SAS.