Les exemples utilisent des données générées (datalines) ou SASHELP pour créer et promouvoir une bibliothèque de formats directement au sein de caslibs.
1 Bloc de code
PROC FORMAT, PROC CAS Data
Explication : Cet exemple illustre la manière la plus courante de 'promouvoir' des formats dans SAS Viya : en les créant directement dans un caslib désigné pour les formats (ici, 'myglobalformats'). Cela rend le format '$genderfmt' et 'agegrpfmt' immédiatement disponibles pour toutes les opérations ultérieures dans le caslib spécifié et potentiellement pour d'autres utilisateurs si le caslib est global et permanent. Il définit des formats et les applique à une nouvelle table CAS.
Copié !
options casopts=(caslib=casuser timeout=900);
cas casauto;
proc cas;
session casauto.addcaslib / caslib='myglobalformats' path='&_TEMP_/myformats' subdirs=true datasource=(srctype='path');
quit;
proc format lib=myglobalformats;
value $genderfmt
'M' = 'Masculin'
'F' = 'Féminin';
value agegrpfmt
low-<18 = 'Mineur'
18-high = 'Adulte';
run;
proc cas;
session casauto.addFmtSearchPath / searchPath={'myglobalformats'};
quit;
data casuser.clients (promote=yes);
input Name $ Gender $ Age;
format Gender $genderfmt. Age agegrpfmt.;
datalines;
Alice F 25
Bob M 17
Carol F 30
David M 20
;
run;
proc print data=casuser.clients;
run;
proc cas;
session casauto.removeFmtSearchPath / searchPath={'myglobalformats'};
session casauto.dropcaslib / caslib='myglobalformats';
quit;
Explication : Cet exemple simule l'utilisation d'un format `$statusfmt` qui a été 'promu' (rendu disponible dans un caslib 'myglobalformats'). Il montre comment s'assurer que le caslib contenant les formats est dans le chemin de recherche de formats de la session CAS (`addFmtSearchPath`) puis comment appliquer ce format à de nouvelles données créées dans un DATA step s'exécutant en mode CAS. Il met en évidence l'accessibilité du format après sa 'promotion'.
Copié !
options casopts=(caslib=casuser timeout=900);
cas casauto;
proc cas;
session casauto.addcaslib / caslib='myglobalformats' path='&_TEMP_/myformats' subdirs=true datasource=(srctype='path');
quit;
proc format lib=myglobalformats;
value $statusfmt
'A' = 'Actif'
'I' = 'Inactif'
'X' = 'En attente'
other = 'Inconnu';
run;
proc cas;
session casauto.addFmtSearchPath / searchPath={'myglobalformats'};
quit;
data casuser.ventes (promote=yes);
input Produit $ StatutCommande $ Montant;
format StatutCommande $statusfmt.;
datalines;
PC A 1200
Souris I 25
Clavier A 80
Ecran X 300
;
run;
proc print data=casuser.ventes;
run;
proc cas;
session casauto.removeFmtSearchPath / searchPath={'myglobalformats'};
session casauto.dropcaslib / caslib='myglobalformats';
quit;
Explication : Cet exemple avancé utilise une macro SAS pour dynamiser la création et la 'promotion' d'un format. Il montre comment un format peut être créé et rendu disponible dans un caslib via une macro. De plus, il illustre un scénario de gestion de conflit où un format avec le même nom est redéfini, et comment le système utilise la définition la plus récente ou la plus prioritaire dans le chemin de recherche de formats.
Copié !
options casopts=(caslib=casuser timeout=900);
cas casauto;
proc cas;
session casauto.addcaslib / caslib='dynamicformats' path='&_TEMP_/dynamicformats' subdirs=true datasource=(srctype='path');
quit;
%macro create_and_promote_format(libname, fmtname);
proc format lib=&libname;
value &fmtname
1 = 'Faible'
2 = 'Moyen'
3 = 'Élevé';
run;
proc cas;
session casauto.addFmtSearchPath / searchPath={'&libname'};
quit;
%mend;
%create_and_promote_format(libname=dynamicformats, fmtname=level);
proc format lib=dynamicformats;
value level
1 = 'Bas'
2 = 'Moy'
3 = 'Haut';
run;
data casuser.evaluations;
input ID Niveau;
format Niveau level.;
datalines;
101 1
102 2
103 3
;
run;
proc print data=casuser.evaluations;
run;
proc cas;
session casauto.removeFmtSearchPath / searchPath={'dynamicformats'};
session casauto.dropcaslib / caslib='dynamicformats';
quit;
Explication : Cet exemple se concentre sur la gestion du cycle de vie des formats 'promus' dans SAS Viya. Il montre comment vérifier quels caslibs sont actuellement inclus dans le chemin de recherche de formats d'une session CAS via `listFmtSearchPath`. Ensuite, il démontre comment retirer explicitement un caslib du chemin de recherche (`removeFmtSearchPath`) et comment nettoyer les ressources temporaires (le caslib lui-même) après utilisation, ce qui est essentiel pour la gestion des ressources dans un environnement CAS partagé.
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.