Publié le :
Macro CREATION_INTERNE

Génération de squelettes IF-THEN dans la log

Ce code est également disponible en : Deutsch English Español
Cette macro parcourt une liste de valeurs spécifiée dans le paramètre 'values'. Pour chaque valeur, elle construit une instruction conditionnelle 'if var=valeur then do; ... end;' et l'écrit dans la journalisation (log) via %PUT. Elle gère l'ajout de guillemets autour des valeurs si le paramètre 'quote' est activé. Elle dépend d'une macro externe nommée '%AHGcount' pour compter les éléments.
Analyse des données

Type : CREATION_INTERNE


Le code n'accède à aucune donnée externe ou table SAS. Il traite uniquement les chaînes de caractères passées en paramètres.

1 Bloc de code
MACRO
Explication :
Définition de la macro. Elle boucle sur le nombre d'éléments retourné par %AHGcount. À chaque itération, elle extrait une valeur via %SCAN, applique éventuellement des guillemets via %SYSFUNC(QUOTE), puis utilise %PUT pour écrire la syntaxe d'un bloc IF/THEN/DO SAS dans la log.
Copié !
1%macro AHGifstat(var,values,quote=0,dlm=%str( ));
2 %local i one;
3
4 %DO i=1 %to %AHGcount(&values,dlm=&dlm);
5 %IF "e %THEN %let one=%sysfunc(quote(%scan(&values,&i,&dlm)));
6 %ELSE %let one= %scan(&values,&i,&dlm);
7 %put %str(IF &var=&one THEN );
8 %put %str( DO;);
9 %put %str( );
10 %put %str( END;);
11 %put %str( );
12 %END;
13 
14%mend;
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.