Cette macro itère sur une liste de noms de variables cibles (`toVars`) et utilise la fonction `scan` pour extraire les segments correspondants de la variable source (`inVar`) séparés par un délimiteur (`dlm`, par défaut '@'). Elle génère une étape DATA pour effectuer cette transformation. Elle gère optionnellement la suppression de la variable source et la définition du dataset de sortie. Note : Elle dépend de macros utilitaires externes non fournies ici (`%AHGblank`, `%AHGbarename`, `%AHGcount`).
Analyse des données
Type : MIXTE
Les données sont fournies dynamiquement via le paramètre `dsn` lors de l'appel de la macro.
1 Bloc de code
DATA STEP Data
Explication : Définition de la macro. Elle vérifie d'abord si un nom de table de sortie est fourni, sinon elle dérive un nom. Ensuite, elle initie une étape DATA lisant la table d'entrée. Une boucle `%do` génère dynamiquement les instructions d'assignation pour chaque nouvelle variable en utilisant la fonction `scan`. Enfin, la variable d'origine est supprimée si le paramètre `drop` est actif.
Copié !
%macro AHGsplitVar(dsn,inVar,toVars,out=,dlm= @,drop=1);
%if %AHGblank(&out) %then %let out=%AHGbarename(&dsn);
data &out;
set &dsn;
%local i;
%do i=1 %to %AHGcount(&toVars);
%scan(&ToVars,&i)=scan(&inVar,&i,"&dlm");
%end;
%if &drop %then drop &invar;;
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.