Définition et utilisation d'une fonction FCMP CAS

Niveau de difficulté
Débutant
Publié le :
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'.
Copié !
1cas;
2caslib _all_ assign;
3 
4PROC CAS;
5 LOADACTIONSET "fcmpact";
6 setSessOpt{cmplib="casuser.examples"};
7RUN;
2 Bloc de code
FCMP Function Definition
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é !
1SOURCE ex_code;
2function ex_add(a, b);
3 
4 C = a+b;
5 
6 return(C);
7 
8return(P);
9endfunc;
10ENDSOURCE;
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').
Copié !
1fcmpact.addRoutines /
2 saveTable = true,
3 funcTable = {name="examples", caslib="casuser", replace=true},
4 package = "myPackage",
5 routineCode = ex_code;
6RUN;
7QUIT;
4 Bloc de code
DATA STEP Data
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é !
1LIBNAME sascas1 cas caslib=casuser;
2 
3options cmplib=sascas1.examples;
4 
5DATA sascas1.blah;
6 value = ex_add(1,2);
7 OUTPUT;
8RUN;
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é !
1PROC PRINT DATA=sascas1.blah;
2RUN;
3RUN;
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.
Informations de Copyright : Copyright © 2021, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. SPDX-License-Identifier: Apache-2.0


Documentation liée

Aucune documentation spécifique pour cette catégorie.