Attention : Ce code nécessite des droits administrateur.
Le script initialise une session CAS et attribue toutes les caslibs disponibles. Il charge ensuite l'ensemble d'actions 'fcmpact' nécessaire à la gestion des fonctions FCMP. Une fonction simple 'ex_add' est définie pour additionner deux nombres. Cette fonction est ensuite enregistrée dans la caslib 'casuser' sous le nom de table de fonctions 'examples', la rendant persistante et accessible. Enfin, le script configure le chemin de la bibliothèque FCMP et crée une table CAS ('sascas1.blah') en utilisant la fonction 'ex_add' pour calculer une valeur, puis imprime le résultat.
Analyse des données
Type : CREATION_INTERNE
La table 'sascas1.blah' est entièrement créée et populée dynamiquement dans le script SAS par un DATA STEP. Elle ne dépend d'aucune source de données externe préexistante non gérée par le script ou issue de SASHELP.
1 Bloc de code
CAS Session Management / PROC CAS
Explication : Ce bloc initialise une session CAS, attribue toutes les bibliothèques CAS disponibles ('_all_ assign') et charge l'ensemble d'actions 'fcmpact' qui permet de manipuler les fonctions FCMP dans CAS. La procédure configure également l'option de session 'cmplib' pour pointer vers la bibliothèque de fonctions FCMP 'casuser.examples'.
Explication : Ce bloc définit le code source d'une fonction FCMP nommée 'ex_add' sous la référence 'ex_code'. Cette fonction est conçue pour prendre deux arguments ('a' et 'b'), les additionner et retourner le résultat 'C'. La ligne 'return(P);' après le premier 'return(C);' est redondante et ne sera jamais exécutée car le flux d'exécution se termine après la première instruction 'return'.
Copié !
source ex_code;
function ex_add(a, b);
C = a+b;
return(C);
return(P);
endfunc;
endsource;
1
SOURCE ex_code;
2
function ex_add(a, b);
3
4
C = a+b;
5
6
return(C);
7
8
return(P);
9
endfunc;
10
ENDSOURCE;
3 Bloc de code
PROC CAS / FCMPACT.ADDRoutines
Explication : Cette action CAS de l'actionset 'fcmpact' est utilisée pour enregistrer la fonction FCMP 'ex_add' (définie précédemment par 'routineCode = ex_code') dans le CAS. L'option 'saveTable=true' assure la persistance de la fonction après la fin de la session CAS. La fonction est stockée dans une table appelée 'examples' dans la caslib 'casuser', remplaçant toute version existante ('replace=true').
Explication : Ce bloc assigne la libname 'sascas1' pour accéder à la caslib 'casuser', permettant ainsi l'accès aux tables et fonctions CAS. L'option globale 'cmplib' est ensuite définie pour inclure la bibliothèque de fonctions FCMP 'sascas1.examples', rendant la fonction 'ex_add' disponible. Un DATA STEP est utilisé pour créer une nouvelle table CAS nommée 'sascas1.blah' et y stocker le résultat de l'appel à la fonction 'ex_add' avec les arguments 1 et 2.
Copié !
libname sascas1 cas caslib=casuser;
options cmplib=sascas1.examples;
data sascas1.blah;
value = ex_add(1,2);
output;
run;
1
LIBNAME sascas1 cas caslib=casuser;
2
3
options cmplib=sascas1.examples;
4
5
DATA sascas1.blah;
6
value = ex_add(1,2);
7
OUTPUT;
8
RUN;
5 Bloc de code
PROC PRINT
Explication : La procédure PROC PRINT est utilisée ici pour afficher le contenu de la table CAS 'sascas1.blah' qui a été créée et populée dans le bloc de code précédent. Cela permet de vérifier le résultat de l'exécution de la fonction FCMP 'ex_add'.
Copié !
proc print data=sascas1.blah;
run;
run;
1
PROC PRINTDATA=sascas1.blah;
2
RUN;
3
RUN;
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.