Publié le :
Macro MIXTE

Macro AHGkeepvar : Sélection de variables par position

Ce code est également disponible en : Deutsch English Español
En attente de validation
Cette macro génère dynamiquement une étape DATA pour filtrer les variables d'une table en entrée (`dsn`). Au lieu de lister les noms des variables, l'utilisateur fournit une liste d'indices (`IDs`). La macro s'appuie sur des macros tierces (`AHGvarlist`, `AHGblank`, `AHGbarename`, `ahgcount`) pour récupérer la liste des noms de variables et construire la clause `KEEP` appropriée.
Analyse des données

Type : MIXTE


La macro traite une table SAS fournie en paramètre (`dsn`). La source dépend donc de l'appel de la macro.

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc définit la macro. Il commence par déterminer le nom de la table de sortie. Ensuite, il récupère la liste des variables de la table source via `%AHGvarlist`. Le cœur du traitement est une boucle `%do` à l'intérieur de l'instruction `keep=`, qui traduit chaque index numérique fourni dans `IDs` en son nom de variable correspondant via des fonctions `%scan` imbriquées.
Copié !
1%macro AHGkeepvar(dsn,IDs,out=);
2 %IF %AHGblank(&out) %THEN %let out=%AHGbarename(&dsn);
3 %local i count varlist;
4 %AHGvarlist(&dsn,Into=varlist,dlm=%str( ),global=0);
5 %let count=%ahgcount(&ids);
6 DATA &out;
7 SET &dsn(keep=
8 %DO i=1 %to &count;
9 %scan(&varlist,%scan(&IDs,&i))
10 %END;
11 );
12 RUN;
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.