No penséis que restar dos fechas y 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_edad;
    set uno;
    format fecha2 ddmmyy10.;
    fecha2 = "15MAY2014"d;
    edad = int((fecha2 - fecha1) / 365.25);
run;

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

Visualizad el conjunto de datos uno_filtro; 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_edad;
    set uno;
    format fecha2 ddmmyy10.;
    fecha2 = "15MAY2014"d;
    edad = int(yrdif(fecha1, fecha2, 'AGE'));
run;

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

Ahora nuestra serie sí es 29, 28, 27, 26, 25… Ya sabéis: tened cuidado a la hora de calcular edades porque SAS parece que trabaja hasta con la hora del nacimiento para calcular edades. Saludos.