El script comienza creando un conjunto de datos de ejemplo 'test' que contiene fechas de nacimiento y fechas de referencia a través de `datalines`. Luego procede a la definición de dos funciones FCMP: `AgeToday`, que calcula la edad con respecto a la fecha actual, y `AgeDate`, que calcula la edad entre una fecha de nacimiento y una fecha de referencia especificada. Finalmente, el script utiliza estas funciones en un nuevo paso DATA para añadir las edades calculadas al conjunto de datos 'test'. La implementación del cálculo de la edad es robusta, manejando las diferencias de meses y días para una precisión correcta.
Análisis de datos
Type : CREATION_INTERNE
El script crea un conjunto de datos de ejemplo 'test' utilizando `datalines` para simular fechas de nacimiento y fechas de referencia. No se requieren ni utilizan datos externos.
1 Bloque de código
DATA STEP Data
Explicación : Este bloque DATA step crea un conjunto de datos llamado 'test'. Define dos variables, 'birthday' y 'date2', como fechas. Los formatos `date9.` e `informat` se utilizan para la lectura y visualización de las fechas. Los valores se leen directamente de las `datalines` proporcionadas, simulando así un conjunto de datos de entrada para los cálculos de edad. Estos datos son internos al script.
proc fcmp outlib=work.cat_function.test ;
function AgeToday(DateDay);
to = TODAY();
bd = DateDay;
age = int((intck('month',bd,to)-(day(bd)>day(to)))/12);
return(age);
endsub;
run;
1
PROC FCMP outlib=work.cat_function.test ;
2
function AgeToday(DateDay);
3
to = TODAY();
4
bd = DateDay;
5
age = int((intck('month',bd,to)-(day(bd)>day(to)))/12);
6
return(age);
7
endsub;
8
RUN;
3 Bloque de código
PROC FCMP
¡Copiado!
proc fcmp outlib=work.cat_function.test ;
function AgeDate(Birthdate,Date);
to = Date;
bd = Birthdate;
age = int((intck('month',bd,to)-(day(bd)>day(to)))/12);
return(age);
endsub;
run;
1
PROC FCMP outlib=work.cat_function.test ;
2
function AgeDate(Birthdate,Date);
3
to = Date;
4
bd = Birthdate;
5
age = int((intck('month',bd,to)-(day(bd)>day(to)))/12);
6
return(age);
7
endsub;
8
RUN;
4 Bloque de código
OPTIONS
¡Copiado!
options cmplib=work.cat_function;
1
options cmplib=work.cat_function;
5 Bloque de código
DATA STEP
¡Copiado!
data test;
set test;
AgeT = AgeToday(birthday);
AgeD = AgeDate(birthday,date2);
run;
1
DATA test;
2
SET test;
3
AgeT = AgeToday(birthday);
4
AgeD = AgeDate(birthday,date2);
5
RUN;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : Creation date : 16/04/2017 (fr)
Last update : 16/04/2017 (fr)
Author(s) : Nicolas DUPONT
Tested on SAS Studio 9.4
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.