Publicado el :
ETL CREATION_INTERNE

Creación de variables y filtrado de datos con el paso DATA

Este código también está disponible en: Deutsch English Français
En espera de validación
El paso DATA permite construir una nueva tabla CAS llamada CreditQualify a partir de una tabla existente, CreditScores. Se crean variables categóricas como 'Age_Range', 'FICO_Rating' y 'Credit_Qualification' en función de los valores numéricos de las variables 'Age' y 'Credit_Score'. Las clasificaciones se realizan utilizando bloques condicionales IF-THEN/ELSE. El código incluye el uso de sesiones CAS ('sessref=mysession') y la consulta de la tabla resultante a través de la acción 'table.fetch' de PROC CAS.
Análisis de datos

Type : CREATION_INTERNE


El ejemplo se basa en una tabla CAS 'mycaslib.creditscores'. Para que el ejemplo sea autónomo, simularemos esta tabla con un paso DATA y datalines.

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque de código primero crea una tabla fuente 'mycaslib.creditscores' con datos ficticios para la edad y la puntuación de crédito. Luego, ejecuta el paso DATA original. Este lee las observaciones de 'mycaslib.creditscores' y crea tres nuevas variables categóricas: 'Age_Range' (rango de edad), 'FICO_Rating' (evaluación de la puntuación FICO) y 'Credit_Qualification' (calificación de crédito). Los valores de estas variables se asignan condicionalmente en función de 'Age' y 'Credit_Score' utilizando las instrucciones IF-THEN/ELSE. La tabla resultante 'mycaslib.creditqualify' se almacena en el servidor CAS.
¡Copiado!
1DATA mycaslib.creditscores;
2 INPUT Age Credit_Score;
3 DATALINES;
4 20 550
5 30 680
6 40 750
7 50 810
8 60 400
9 70 700
10 22 350
11 35 600
12 45 780
13 55 850
14 65 590
15 ;
16RUN;
17 
18DATA mycaslib.creditqualify / sessref=mysession;
19 SET mycaslib.creditscores;
20 LENGTH Age_Range $8;
21 IF Age in (18, 19, 20, 21, 22, 23, 24, 25) THEN Age_Range="18-25";
22 ELSE IF Age in (26, 27, 28, 29, 30, 31, 32, 33, 34, 35) THEN Age_Range="26-35";
23 ELSE IF Age in (36, 37, 38, 39, 40, 41, 42, 43, 44, 45) THEN Age_Range="36-45";
24 ELSE IF Age in (46, 47, 48, 49, 50, 51, 52, 53, 54, 55) THEN Age_Range="46-55";
25 ELSE IF Age in (56, 57, 58, 59, 60, 61, 62, 63, 64) THEN Age_Range="56-64";
26 ELSE IF Age>=65 THEN Age_Range="65+";
27 
28 LENGTH FICO_Rating $12;
29 IF 300<=Credit_Score<=570 THEN FICO_Rating="Very Poor";
30 ELSE IF 580<=Credit_Score<=669 THEN FICO_Rating="Fair";
31 ELSE IF 670<=Credit_Score<=739 THEN FICO_Rating="Good";
32 ELSE IF 740<=Credit_Score<=799 THEN FICO_Rating="Very Good";
33 ELSE IF Credit_Score>=800 THEN FICO_Rating="Exceptional";
34 
35 LENGTH Credit_Qualification $12;
36 IF Credit_Score>=740 THEN Credit_Qualification="Platinum";
37 ELSE IF 650<=Credit_Score<=739 THEN Credit_Qualification="Gold";
38 ELSE IF 450<=Credit_Score<=649 THEN Credit_Qualification="Secured Card";
39 ELSE IF Credit_Score<=449 THEN Credit_Qualification="N/A";
40RUN;
2 Bloque de código
PROC CAS
Explicación :
Este bloque de código utiliza el procedimiento CAS para ejecutar la acción 'table.fetch'. Esta acción permite recuperar y mostrar las observaciones de la tabla CAS 'creditqualify' que fue creada en el paso DATA anterior.
¡Copiado!
1 
2PROC CAS;
3TABLE.fetch / TABLE="creditqualify" index=false;
4QUIT;
5 
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.