Publié le :
ETL CREATION_INTERNE

Création d'une table de regroupement

Ce code est également disponible en : Deutsch English Español
En attente de validation
Cet exemple montre comment créer une table de regroupement (group-by table) en utilisant les actions CAS (Cloud Analytic Services) sur la plateforme SAS© Viya. La table d'entrée CreditQualify est regroupée par les variables d'état (State) et les codes FIPS de l'état (State_FIPS). La variable Credit_Score est utilisée comme variable de pondération pour calculer la moyenne (MEAN) des scores de crédit par groupe. Les résultats intermédiaires et finaux sont gérés à l'aide d'actions CAS telles que simple.groupBy, table.alterTable, table.fetch et table.save. Une fois le regroupement effectué, la table de sortie ScorePerState est enrichie d'une colonne _Score_ formatée et sauvegardée au format .sashdat pour une réutilisation facile. La vérification du code de gravité (s.severity = 0) assure que les opérations sont exécutées uniquement en cas de succès de l'action précédente.
Analyse des données

Type : CREATION_INTERNE


La table d'exemple CreditQualify est créée à l'aide d'un DATA step avec des datalines pour assurer l'autonomie de l'exemple. Les données sont fictives et comprennent les variables State (chaîne de caractères), State_FIPS (numérique) et Credit_Score (numérique).

1 Bloc de code
PROC CAS / DATA STEP Data
Explication :
Le DATA step initial crée une table temporaire nommée 'CreditQualify' avec des données d'exemple pour les variables 'State' (état), 'State_FIPS' (code FIPS de l'état) et 'Credit_Score' (score de crédit). La déclaration PROC CAS active la session SAS Cloud Analytic Services (CAS). L'action simple.groupBy est ensuite utilisée pour construire des groupes basés sur les variables 'State' et 'State_FIPS'. 'Credit_Score' est définie comme variable de pondération et l'agrégateur est défini sur 'MEAN' pour calculer la moyenne des scores de crédit par groupe. Les options 'scoregt' et 'scorelt' définissent les limites inférieure et supérieure des scores à inclure. Le résultat de cette action est une table de sortie nommée 'ScorePerState' dans la caslib active. Une vérification du code de gravité (s.severity = 0) assure que les actions suivantes ne sont exécutées qu'en cas de succès. Si l'action groupBy réussit, l'action table.alterTable est utilisée pour modifier la colonne '_Score_' en lui attribuant le libellé 'Credit Score' et le format '5.2'. Ensuite, l'action table.fetch récupère les variables 'State', 'State_FIPS' et '_Score_' de la table 'ScorePerState', en appliquant le format spécifié pour '_Score_'. Enfin, l'action table.save enregistre la table 'ScorePerState' au format .sashdat dans la caslib active.
Copié !
1DATA work.CreditQualify;
2 INPUT State $ State_FIPS Credit_Score;
3 DATALINES;
4NC 37 700
5NC 37 750
6NY 36 600
7NY 36 620
8CA 06 800
9CA 06 820
10;
11RUN;
12 
13PROC CAS;
14 SESSION mysession;
15 SIMPLE.groupBy RESULT=r STATUS=s /
16 inputs={"State", "State_FIPS"},
17 weight="Credit_Score",
18 aggregator="MEAN",
19 scoregt=0,
20 scorelt=900,
21 TABLE={name="CreditQualify"},
22 casout={name="ScorePerState",
23 replace=true};
24RUN;
25 IF (s.severity = 0) THEN DO;
26 TABLE.alterTable / columns={
27 {label="Credit Score", FORMAT="5.2", name="_Score_"}},
28 name="ScorePerState";
29 TABLE.fetch /
30 FORMAT=True,
31 fetchVars={"State", "State_FIPS",
32 {name="_Score_",FORMAT="5.2"}},
33 TABLE={name="ScorePerState"},
34 index=false;
35 
36 TABLE.save /
37 TABLE={name="ScorePerState"},
38 name="ScorePerState.sashdat",
39 replace=True;
40 END;
41RUN;
42QUIT;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Banner
Le Conseil de l'Expert
Expert
Stéphanie
Spécialiste Machine Learning et IA.
« Pour des analyses encore plus riches, sachez que vous pouvez calculer plusieurs statistiques simultanément (Min, Max, Somme) dans une seule action groupBy. Cela réduit le nombre de passes sur les données et optimise considérablement le temps de calcul global de vos tableaux de bord. »