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 SOLO DEVUELVE UN NUMERO; &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 facilmente, 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 mas 1 en estudio. Si disponemos de una fecha SAS recomiendo usar la función INTNX para determinar el número de días del mes, ejemplo: ...

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 como 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 luego el resultado que ofrece será una fecha e INTCK sirve para trabajar con intervalos, luego el resultado que nos ofrece será un número entero. Esta es la premisa fundamental. Entonces: ...

6 de julio de 2010 · rvaquerizo