SAS: Cálculo de la edad


 

Se puede calcular la edad de muchas maneras, pero la más cómoda es utilizando la función intck(). Esta función calcula distintas entre fechas expresadas en distintas unidades de medidas: días, meses, años, etc. Ya he escrito algo sobre esta función en este artículo.

Para calcular la edad natural a fecha de hoy podemos utilizar la siguiente fórmula, que es muy simple:

edad = intck('year',fec_nacimiento,date(),'c');

En la función anterior, ‘year’ indica que se va a medir la diferencia entre las fechas en años, el segundo parámetro es la fecha de nacimiento que tengamos. En el tercero indicamos la fecha de hoy con la función date() y finalmente, el cuarto parámetro indica que la diferencia en años resultante tiene que ser a años cumplidos, o sea, que tener 35 años y 11 meses implica que la función devolverá 35 años.

Si queremos calcular esa edad a una fecha concreta del pasado, o del futuro, solo debemos sustituir el segundo parámetro por la fecha que queramos, por ejemplo ’31dec2022’d:

edad = intck('year',fec_nacimiento,'31dec2022'd,'c');

Finalmente, hay otra edad que se calcula en el mundo de los seguros que es la edad técnica y que sirve para calcular el riesgo asociado a un individuo y su prima correspondiente. Esta edad técnica es el redondeo de la edad natural al entero más cercano, o sea, 35 años y 7 meses implica que tienes 36 años técnicos. Esto se calcularía así:

edad_tecnica = intck('year',fec_nacimiento,date());
edad_tecnica2 = round((date() - fec_nacimiento) / 365.25);

Entre estas dos últimas hay una pequeña diferencia cuando te aproximas a la fecha de cumpleaños, pero he visto la segunda muchas veces en muchos ejemplos de código. Yo, prefiero la primera, que es más exacta.