sábado, 1 de agosto de 2015

Como calcular la edad en SAS


Obtener una diferencia en años entre ellas es un tema baladí. Ejecutad el siguiente código SAS para calcular la diferencia en años:

data uno;
   format fecha1 ddmmyy10.;
     do fecha1= 9000 to today();
      output;
    end;
run;

data uno;
set uno;
   format fecha2 ddmmyy10.;
   fecha2="15MAY2014"d;

  edad = int((fecha2-fecha1)/365.25);
  if month(fecha1)=5 and day(fecha1)=15;
run;
Visualizad el conjunto de datos uno, la serie de edad asusta 28,28,27,25,24,24,… Está claro que algo falla. Hace ya tiempo que hablamos de ello en este mismo blog. Los ceros y los unos con los que guardan estas máquinas las cosas a veces nos juegan estas malas pasadas. Para evitar este problema os sugiero que empleéis la función de SAS YRDIF con la base ‘AGE’. Replicamos el ejemplo:

data uno;
  format fecha1 ddmmyy10.;
   do fecha1= 9000 to today();
  output;
   end;
run;

data uno;
 set uno;
 format fecha2 ddmmyy10.;
 fecha2="15MAY2014"d;
 edad = int(yrdif(fecha1,fecha2,'AGE'));
run;

data uno;
 set uno;
 if month(fecha1)=5 and day(fecha1)=15;
run;


No hay comentarios:

Publicar un comentario