El script consta de tres bloques principales. El primer bloque calcula la duración (días, días hábiles, semanas, meses) entre la fecha actual y una fecha de vacaciones predefinida, almacenando los resultados en una tabla CAS. El segundo bloque genera información ficticia sobre los pagos, incluyendo un identificador de cliente, una fecha de vencimiento y una fecha de recepción del pago, luego los guarda en otra tabla CAS. El tercer bloque utiliza PROC PRINT para mostrar los registros de los clientes cuyos pagos se recibieron más de 10 días hábiles después de la fecha de vencimiento.
Análisis de datos
Type : CREATION_INTERNE
Todos los datos procesados y generados por este script se crean internamente. La primera tabla se construye a partir de funciones SAS internas (TODAY()) y fechas literales. La segunda tabla se genera aleatoriamente usando la función RAND(). No se utilizan datos externos ni de la biblioteca SASHELP como fuente primaria.
1 Bloque de código
DATA STEP Data
Explicación : Este bloque DATA STEP inicializa una sesión CAS y crea la tabla 'casuser.tidTillSemestern'. Calcula la diferencia entre la fecha actual (IDAG) y una fecha de inicio de semestre (STARTSEM) utilizando la función INTCK. Los cálculos se realizan en días (DAGARTILLSEM), días hábiles (VECKODAGARTILLSEM), semanas (VECKORTILLSEM) y meses (MANADERTILLSEM), con la opción 'c' para un recuento continuo de semanas y meses. Las fechas se formatean en DDMMAAAA.
¡Copiado!
cas;
data casuser.tidTillSemestern;
idag = today();
startSem = '15jun2023'd;
dagarTillSem = intck('day', idag, startSem);
veckodagarTillSem = intck('weekday', idag, startSem);
veckorTillSem = intck('week', idag, startSem, 'c');
manaderTillSem = intck('month', idag, startSem, 'c');
format idag startSem yymmdd10.;
run;
Explicación : Este bloque DATA STEP crea la tabla 'casuser.betalningsInformation' generando 20 registros de datos ficticios. Para cada 'kundID' (identificador de cliente), asigna una 'forfallodatum' (fecha de vencimiento) aleatoria en marzo de 2023 y una 'betalningInkommen' (fecha de recepción del pago) que es la fecha de vencimiento más o menos un número aleatorio de días (entre -5 y 20). Las fechas también se formatean en DDMMAAAA.
¡Copiado!
/*skapa data*/
data casuser.betalningsInformation;
do kundID = 1 to 20;
forfallodatum = rand('integer', '01mar2023'd, '31mar2023'd);
betalningInkommen = forfallodatum + rand('integer', -5, 20);
output;
end;
format forfallodatum betalningInkommen yymmdd10.;
run;
Explicación : Este bloque utiliza PROC PRINT para mostrar una selección de registros de la tabla 'casuser.betalningsInformation'. La cláusula WHERE filtra los registros para incluir solo a los clientes cuya diferencia entre la fecha de vencimiento y la fecha de recepción del pago, calculada en días hábiles ('weekday') por la función INTCK, es superior a 10. Esto permite identificar a los clientes con un retraso significativo en el pago. La instrucción ID especifica que la variable KUNDID debe usarse como identificador en el informe.
¡Copiado!
/*Kunder som är mer än 10 veckodagar sena med sin betalning*/
proc print data=casuser.betalningsInformation;
id kundID;
where intck('weekday', forfallodatum, betalningInkommen) > 10;
run;
1
/*Kunder som är mer än 10 veckodagar sena med sin betalning*/
2
PROC PRINTDATA=casuser.betalningsInformation;
3
id kundID;
4
where intck('weekday', forfallodatum, betalningInkommen) > 10;
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.
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.