Publié le :
Macro EXTERNE

Macro pour compter les variables

Ce code est également disponible en : Deutsch English Español
Cette macro, nommée `vdo_numvar`, est conçue pour être réutilisée afin de déterminer facilement le nombre de variables présentes dans n'importe quel jeu de données SAS©. Elle prend un argument unique, `dsn`, qui représente le nom complet (ou référencé via libname) du jeu de données cible.
Internement, elle utilise la fonction `%sysfunc` de SAS© pour effectuer les opérations suivantes :
1. `open(&dsn)` : Ouvre le jeu de données spécifié par `dsn` et renvoie son identifiant de jeu de données (`dsid`).
2. `attrn(&dsid,nvars)` : Récupère l'attribut numérique 'nvars' (nombre de variables) du jeu de données identifié par `dsid`.
3. `close(&dsid)` : Ferme le jeu de données pour libérer les ressources.
La macro renvoie directement la valeur numérique correspondant au nombre de variables trouvées. Elle est utile pour la programmation dynamique où le nombre de variables peut varier et doit être connu pour des traitements ultérieurs.
Analyse des données

Type : EXTERNE


La macro fonctionne sur un jeu de données SAS existant dont le nom est passé en paramètre (`&dsn`). L'origine spécifique de ce jeu de données n'est pas définie dans la macro elle-même; il peut s'agir de données SASHELP, de données créées précédemment dans la session, ou de données externes référencées via une libname.

1 Bloc de code
MACRO
Explication :
Ce bloc définit la macro `vdo_numvar`. Elle ouvre le jeu de données spécifié par le paramètre `dsn`, utilise la fonction `attrn` pour récupérer le nombre de variables (`nvars`), puis ferme le jeu de données. Le résultat direct de la macro est le nombre de variables.
Copié !
1macro vdo_numvar(dsn)/des="Nnmber of variables in a SAS dataset";
2 
3%let dsid=%sysfunc(open(&dsn));
4%sysfunc(attrn(&dsid,nvars)) %let rc=%sysfunc(close(&dsid));
5 
6%mend vdo_numvar;
7 
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.