domingo, 26 de abril de 2015

Ampliando la funcionalidad de las macros de SAS: %sysfunc

Cuando trabajamos con SAS/BASE es bastante común el uso de macro lenguaje.



El lenguaje macro nos permite dotar al código SAS de pasos data de distintas capacidades, entre ellas:

- Parametrizar y automatizar procesos . Replicarlos en base a parámetros
- Encapsular y reutilizar procesos
- Lanzar procesos de forma iterativa
- Crear macros de uso común
- Crear ramas de ejecución en base a sentencias condicionales



Una forma de ampliar las funcionalidades del lenguaje macro es el empleo de la función macro %SYSFUNC que nos permite emplear funciones propias de los pasos data de SAS en el entorno macro.

A continuación algunos ejemplos de uso de la función %sysfunc.

%let fecha1 = %sysfunc(date(),ddmmyy8.);  /* Obtenemos la fecha del sistema */

%put fecha1 = &fecha1;

%let fecha2 = %sysfunc(intnx(day,%sysfunc(date()),1),ddmmyy8.); /* Desplazamos la fecha del sistema en 1 día */

%put fecha2 = &fecha2;

%let var1 = PRUEBA;

%let var2 = %sysfunc(translate(&var1.,N, P));  /* Reemplazar caracter P por n */

%put var2 = &var2.;

%let var3 = %sysfunc(substr(&var1.,1,3));  /* Obtener una subcadena de 3 posiciones */

%put var3 = &var3.;

%let ingresos = 1000;

%let ingresos = %sysfunc(putn(&ingresos, euro10.2));  /* Convertir numérico a formato moneda euro */

%put ingresos =  &ingresos;

%let var2 = %sysfunc(trim(%sysfunc(left(&var1))));  /* Eliminar blancos y alinear a la izquierda */

%let existe_tab = %sysfunc(exist(tabsas.consumo_4));  /* Comprobar existencia de tabla SAS */

%let nomfich = /home/juanvg1972/ficheros/EJ3_test1.txt;

%let existe_fich =  %sysfunc(fileexist(&nomfich)); /* Comprobar existencia de fichero */

%put existe_fich = &existe_fich;

Formación SAS

2 comentarios:

  1. Estimado en el trabajo que tiene SAP ERP pude recien enterarme de BD SAS en Peru, de donde puedo descargarlo para seguir teniendo mas practica

    ResponderEliminar
  2. Hola Luis,
    Para poder empezar a trabajar con SAS puedes hacerlo con la versión SAS onDemand:
    Versión Cloud:
    http://www.sas.com/en_us/industry/higher-education/on-demand-for-academics.html
    Máquina virtual:
    http://sasybi.blogspot.com.es/2014/06/version-gratuita-de-sas.html

    Si tienes cualquier duda, me dices
    Saludos,

    Juan

    ResponderEliminar