Cette macro est conçue pour être invoquée à l'intérieur d'un DATA Step. Elle analyse une variable source (`var`) pour détecter la présence de chiffres. Si des chiffres sont présents, elle construit une variable de tri (`ordVar`) en normalisant les segments numériques (probablement séparés par des points). Elle utilise une boucle macro pour générer des instructions `tranwrd` qui ajoutent des zéros non significatifs (padding) aux chiffres de 0 à 9 entourés de points, permettant ainsi un tri alphanumérique cohérent (ex: traiter '1.2' comme inférieur à '1.10').
Analyse des données
Type : CREATION_INTERNE
Le code définit une macro logicielle et ne charge ni ne manipule directement de données externes lors de sa compilation.
1 Bloc de code
MACRO
Explication : Définition de la macro `AHGaddordvar`. Elle génère une logique conditionnelle `IF` pour le DATA Step. Elle transforme la chaîne en doublant les délimiteurs '.' et en ajoutant un préfixe '0' aux chiffres uniques trouvés entre ces délimiteurs pour standardiser le format de tri.
Copié !
%macro AHGaddordvar(var,ordVar);
%local i;
if anydigit(&var) then
do;
&ordvar='..'||trim(substr(tranwrd(&var,'.','..'),anydigit(&var)))||'..';
%do i=0 %to 9;
&ordvar=tranwrd(&ordvar,".&i..",".0&i..");
%end;
&ordvar=substr(&var,1,anydigit(&var)-1)||&ordvar;
end;
%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.