Les routines CALL sont des procédures qui permettent l' interaction entre différentes étapes SAS ou entre différents environnements : lien entre étapes DATA et macro-variables, lien entre commandes DOS et programme SAS, résolution d'une macro-variable, etc.
Elle permet d'affecter à une macro-variable la valeur d'une variable créée
par une étape DATA.
Si la macro-variable n'existe pas, la routine la crée.
La routine est particulièrement utile pour récupérer dans une macro-variable
les statistiques calculées par des procédures statistiques.
Exemple :
Dans l'exemple ci-dessous la routine SYMPUT sert à récupérer la moyenne
calculée par la PROC MEANS :
L'étape DATA ici ne sert qu'à copier la valeur de moy dans la macro-variable
moyenne. Elle ne crée aucune table, d'où l'emploi du mot-clé
_null_
(voir le paragraphe correspondant dans la partie "étape data").
Attention à la syntaxe de la routine ! Le premier argument doit être une chaîne
de caractère contenant le nom de la macro-variable.
Une méthode équivalente pour réaliser cela est d'avoir recours à une proc sql :
On remarque que le programme est plus court, un point de plus en faveur
de la proc sql (voir le paragraphe correspondant dans la partie "étape proc").
Ne pas oublier de préfixer le nom de la macro-variable par un " : ".
Note : Ici, l'appel de la routine n'est pas indispensable, puisque la
proc sql va déjà imprimer le résultat dans l'output. Mais on peut sans peine
imaginer un cas où la macro-variable moyenne servirait à autre chose qu'un simple %put...
Si l'on a défini une chaîne de caractères contenant une commande SAS, l'appel de la routine EXECUTE sur cette chaîne de caractères permet d'exécuter cette commande.
Elle permet d'exécuter une commande DOS à partir d'un macro-programme SAS, par exemple la création de fichiers, le déplacement dans l'arborescence des dossiers ou l'appel d'un programme exécutable.
Pour plus de détails, on se réfèrera à l'aide de SAS.