Publié le :
Macro MIXTE

Macro hasvarsc - Vérification de présence de variables caractères

Ce code est également disponible en : Deutsch English Español
Cette macro de style fonctionnel vérifie la présence d'une liste de variables de type caractère dans un jeu de données SAS© spécifié. Elle s'appuie sur les sous-macros '%match' et '%varlistc'. Si des variables ne correspondent pas, elles sont stockées dans la variable macro globale '_nomatch_'. La macro gère la sensibilité à la casse via le paramètre 'casesens'.
Analyse des données

Type : MIXTE


La macro n'utilise pas de données en dur mais opère sur le jeu de données passé en paramètre (argument 'ds'). Elle analyse les métadonnées (noms des variables) de ce jeu de données.

1 Bloc de code
MACRO
Explication :
Définition de la macro '%hasvarsc'. Elle initialise les paramètres, appelle la macro '%varlistc' pour obtenir les variables caractères du dataset cible, et utilise la macro '%match' pour comparer cette liste avec la liste requise ('varlist'). Elle retourne 1 si toutes les variables sont trouvées, sinon 0 (avec un message d'avertissement si aucune variable caractère n'existe dans la source).
Copié !
1%put MACRO CALLED: hasvarsc v2.0;
2 
3%macro hasvarsc(ds,varlist,casesens=no);
4 %local varmatch varlistc;
5 %IF not %LENGTH(&casesens) %THEN %let casesens=no;
6 %let casesens=%upcase(%substr(&casesens,1,1));
7 %let varlistc=%varlistc(&ds);
8 %IF not %LENGTH(&varlistc) %THEN %DO;
9%put NOTE: (hasvarsc) There are no character variables in the INPUT dataset therefore;
10%put NOTE: (hasvarsc) the character variable(s) you are testing for will not be found.;
11 %let varmatch=%match(,&varlist,casesens=&casesens);
120
13 %END;
14 %ELSE %DO;
15 %let varmatch=%match(&varlistc,&varlist,casesens=&casesens);
16 %IF not %LENGTH(&_nomatch_) %THEN 1;
17 %ELSE 0;
18 %END;
19%mend hasvarsc;
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 : Roland Rashleigh-Berry (Public Domain)


Banner
Le Conseil de l'Expert
Expert
Stéphanie
Spécialiste Machine Learning et IA.
« La macro %hasvarsc est un excellent exemple de programmation défensive, indispensable pour créer des applications SAS robustes et évolutives. En vérifiant dynamiquement l'existence et le type (caractère) des variables avant toute exécution, vous évitez les arrêts brutaux de vos programmes dus à des structures de tables inattendues. L'intelligence de cet outil réside dans l'utilisation de la variable globale _nomatch_, qui permet non seulement de savoir si un test a échoué (retour 0), mais aussi d'identifier précisément quelles variables font défaut. C'est un composant idéal à intégrer au début de vos processus ETL ou de vos macros de reporting pour garantir l'intégrité des données sources. »