Trucos SAS. Número de días de un mes

Están entrando muchas visitas con las palabras «número de días de un mes en SAS». Y hoy vamos a dar respuesta a estas entradas con una macro y un truco de SAS. Si tenemos una fecha en formato AAAAMM numérica, típica de las particiones de Oracle, disponemos de la siguiente macro: %macro dias(mes); /* VARIABLES AÑO Y MES */ %let y = %sysfunc(int(&mes. / 100)); %let m = %sysfunc(mod(&mes., 100)); /* TRATAMIENTO ESPECIAL PARA LOS DICIEMBRES */ %if &m. = 12 %then %do; %let m1 = 1; %let y1 = %eval(&y. + 1); %end; %else %do; %let m1 = %eval(&m. + 1); %let y1 = &y.; %end; /* 01/MES MAS 1 - 01/MES */ %let ini = %sysfunc(mdy(&m., 1, &y.)); %let fin = %sysfunc(mdy(&m1., 1, &y1.)); %let dias = %eval(&fin. - &ini.); /* AL FINAL LA MACRO SÓLO DEVUELVE UN NÚMERO */ &dias. %mend; * EJEMPLO DE USO; data _null_; pepin = %dias(200402); put pepin =; run; Ejemplo muy sencillo de código macro y que se entiende muy fácilmente; como siempre, recomiendo que copiéis y peguéis en vuestro SAS y lo entenderéis enseguida. El caso es que calculo el número de días de un mes como la diferencia entre el día 1 del mes en estudio frente al día 1 del mes más 1. ...

29 de julio de 2010 · rvaquerizo

Monográfico. Funciones INTNX e INTCK para fechas en SAS

Las funciones INTNX e INTCK de SAS atraen muchas visitas a esta web. Aunque ya hay algún mensaje en el que muestro cómo funcionan, creo que algunos trabajadores me agradecerán este monográfico. INTNX e INTCK son funciones para trabajar con fechas en SAS. INTNX sirve para trabajar con periodos, por lo que el resultado que ofrece será una fecha; e INTCK sirve para trabajar con intervalos, por lo que el resultado que nos ofrece será un número entero. Ésta es la premisa fundamental. Entonces: ...

6 de julio de 2010 · rvaquerizo