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é !
%macro AHGkeepvar(dsn,IDs,out=);
%if %AHGblank(&out) %then %let out=%AHGbarename(&dsn);
%local i count varlist;
%AHGvarlist(&dsn,Into=varlist,dlm=%str( ),global=0);
%let count=%ahgcount(&ids);
data &out;
set &dsn(keep=
%do i=1 %to &count;
%scan(&varlist,%scan(&IDs,&i))
%end;
);
run;
%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.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.