Les exemples utilisent des données générées (datalines) ou des jeux de données de la bibliothèque SASHELP, garantissant leur autonomie.
1 Bloc de code
DATA STEP / PROC CASUTIL Data
Explication : Cet exemple illustre le chargement le plus simple d'un jeu de données SAS (ici, 'sample_data' créé à partir de SASHELP.CLASS) vers CAS. Le jeu de données est d'abord créé dans la bibliothèque 'work' de SAS. Ensuite, PROC CASUTIL est utilisé pour charger 'sample_data' dans CAS sous le nom 'sample_data_cas' dans la caslib 'CASUSER' par défaut, en remplaçant toute table existante du même nom. Une étape de vérification via une action CAS `table.tableinfo` est incluse.
Copié !
libname mycas cas;
/* Crée un jeu de données SAS dans la bibliothèque WORK */
data work.sample_data;
set sashelp.class;
keep name sex age;
run;
/* Charge le jeu de données SAS dans CAS (caslib par défaut: CASUSER) */
proc casutil;
load casdata="sample_data" casout="sample_data_cas" replace;
run;
/* Vérifie la table chargée dans CAS */
proc cas;
table.tableinfo result=info / name="sample_data_cas" caslib="CASUSER";
print info;
quit;
1
LIBNAME mycas cas;
2
3
/* Crée un jeu de données SAS dans la bibliothèque WORK */
4
DATA work.sample_data;
5
SET sashelp.class;
6
keep name sex age;
7
RUN;
8
9
/* Charge le jeu de données SAS dans CAS (caslib par défaut: CASUSER) */
Explication : Cet exemple montre comment utiliser des options courantes lors du chargement. Un jeu de données 'orders_local' est créé avec des données en ligne. Il est ensuite chargé dans la caslib 'CASUSER'. L'option `PROMOTE` est utilisée pour rendre la table 'orders_cas' globalement accessible dans la session CAS, ce qui signifie que d'autres utilisateurs ou sessions pourront y accéder si les permissions le permettent. `REPLACE` assure que si la table existe déjà, elle sera écrasée.
Copié !
libname mycas cas;
/* Création d'un jeu de données SAS local à charger */
data work.orders_local;
input OrderID Customer $ Amount;
datalines;
1001 Alice 250.00
1002 Bob 120.50
1003 Alice 300.00
1004 Charlie 80.25
;
run;
/* Charge le jeu de données SAS dans une caslib spécifique et le promeut */
proc casutil;
load casdata="orders_local" casout="orders_cas" caslib="CASUSER" promote replace;
run;
/* Vérification de la table promue dans CAS */
proc cas;
table.tableinfo result=info / name="orders_cas" caslib="CASUSER";
print info;
quit;
1
LIBNAME mycas cas;
2
3
/* Création d'un jeu de données SAS local à charger */
4
DATA work.orders_local;
5
INPUT OrderID Customer $ Amount;
6
DATALINES;
7
1001 Alice 250.00
8
1002 Bob 120.50
9
1003 Alice 300.00
10
1004 Charlie 80.25
11
;
12
RUN;
13
14
/* Charge le jeu de données SAS dans une caslib spécifique et le promeut */
Explication : Cet exemple avancé illustre un scénario où les données sont préparées et enrichies avant le chargement dans CAS. Un format SAS personnalisé ('$statusfmt') est défini et appliqué à la variable 'Status' dans un nouveau jeu de données 'employees_local'. Ce jeu de données formaté est ensuite chargé dans CAS. Lors de la récupération (fetch) de la table CAS, le format est conservé et affiché, démontrant que le processus de chargement respecte les attributs des variables SAS, y compris les formats.
Copié !
libname mycas cas;
/* Définition d'un format personnalisé pour une variable */
proc format;
value $statusfmt 'A' = 'Actif'
'I' = 'Inactif'
other = 'Inconnu';
run;
/* Création d'un jeu de données SAS avec une variable à formater */
data work.employees_local;
input EmpID Name $ Status $;
format Status $statusfmt.; /* Applique le format */
datalines;
201 John A
202 Jane I
203 Mike A
204 Sara X
;
run;
/* Chargement du jeu de données formaté dans CAS */
proc casutil;
load casdata="employees_local" casout="employees_cas" caslib="CASUSER" replace;
run;
/* Vérification et affichage pour voir le format appliqué */
proc cas;
table.fetch result=r / table={name="employees_cas", caslib="CASUSER"};
print r.Fetch;
quit;
1
LIBNAME mycas cas;
2
3
/* Définition d'un format personnalisé pour une variable */
4
PROC FORMAT;
5
value $statusfmt 'A' = 'Actif'
6
'I' = 'Inactif'
7
other = 'Inconnu';
8
RUN;
9
10
/* Création d'un jeu de données SAS avec une variable à formater */
11
DATA work.employees_local;
12
INPUT EmpID Name $ STATUS $;
13
FORMATSTATUS $statusfmt.; /* Applique le format */
14
DATALINES;
15
201 John A
16
202 Jane I
17
203 Mike A
18
204 Sara X
19
;
20
RUN;
21
22
/* Chargement du jeu de données formaté dans CAS */
DATA STEP / PROC CASUTIL / PROC CAS (Actions CAS) Data
Explication : Cet exemple met en évidence l'intégration avec l'environnement CAS de Viya pour le traitement distribué. Il commence par créer un jeu de données SAS filtré ('filtered_class_local'). Ce jeu est ensuite chargé dans CAS. La partie clé est l'utilisation de `proc cas` pour exécuter directement une 'action CAS' (`simple.summary`). Cette action est conçue pour exploiter l'architecture distribuée de CAS afin de calculer la moyenne d'âge par sexe de manière efficace, démontrant le potentiel de performance de l'analyse en mémoire sur le serveur CAS. Un bloc de nettoyage final est ajouté pour supprimer les tables créées dans CAS.
Copié !
libname mycas cas;
/* Crée un sous-ensemble du jeu de données SASHELP.CLASS avec un filtre */
data work.filtered_class_local;
set sashelp.class (where=(age >= 12));
keep name sex age;
run;
/* Charge le sous-ensemble dans CAS */
proc casutil;
load casdata="filtered_class_local" casout="filtered_class_cas" caslib="CASUSER" replace;
run;
/* Utilise une action CAS (simple.summary) pour effectuer une agrégation distribuée */
proc cas;
simple.summary result=summary_res /
table={name="filtered_class_cas", caslib="CASUSER"},
groupby={"sex"},
inputs={"age"};
print summary_res;
quit;
/* Nettoyage : suppression des tables CAS créées (facultatif) */
proc casutil;
droptable casdata="sample_data_cas" caslib="CASUSER";
droptable casdata="orders_cas" caslib="CASUSER";
droptable casdata="employees_cas" caslib="CASUSER";
droptable casdata="filtered_class_cas" caslib="CASUSER";
run;
1
LIBNAME mycas cas;
2
3
/* Crée un sous-ensemble du jeu de données SASHELP.CLASS avec un filtre */
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.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.