Macro Sas

Macros SAS. Transformar un numérico a fecha

A continuación vamos a plantear una macro de SAS bastante sencilla que nos permitirá transformar valores numéricos del tipo 20080607, fechas en formato AAAAMMDD pero que son numéricas, a valores fecha en SAS que nos permitirán realizar operaciones. Siguiendo el sistema de todos los mensajes de AyD trabajaremos con ejemplos para estudiar su utilidad.

Partimos de dos fechas en formato AAAAMMDD y desamos realizar una diferencia entre ellas:

data _null_;

 y=20070101;

 m=20080110;

 dif=m-y; put dif;

run;

En el log obtenemos que la diferencia entre estas 2 fechas es 10009, necesitamos transformarlas en variables numéricas pero del tipo fecha. Tenemos múltiples posibilidades para realizar esta transformación, pero en este caso voy a emplear la función de creación de fecha en SAS MDY(mes,día,año). Para conseguir del valor AAAAMMDD el mes, el día y el año emplearemos las funciónes MOD para calcular el módulo e INT para obtener la parte entera de una operación: