Publié le :
Macro CREATION_INTERNE

Macro d'alignement et formatage par expressions régulières

Ce code est également disponible en : Deutsch English Español
Cette macro itère sur une liste de variables fournie en paramètre (délimitée par des espaces). Pour chaque variable, elle génère du code SAS© (destiné à être exécuté dans une étape DATA) appliquant une série de fonctions `PRXCHANGE`. Ces transformations visent à standardiser l'espacement autour des nombres, des parenthèses et des points décimaux. Notez que ce code dépend d'une macro externe `%AHGcount` non fournie ici.
Analyse des données

Type : CREATION_INTERNE


Le script définit une macro utilitaire. Il ne lit aucune donnée directement mais manipule des variables passées en argument au sein d'une étape Data appelante.

1 Bloc de code
MACRO
Explication :
Définition de la macro `AHGalign`. Elle boucle sur la liste de variables fournie (`allvar`) en utilisant la macro tierce `%AHGcount`. Pour chaque variable, elle injecte quatre instructions `PRXCHANGE` pour : 1) Formater les nombres suivis de parenthèses. 2) Ajouter deux espaces devant les chiffres seuls. 3) Ajouter un espace devant les nombres à deux chiffres. 4) Supprimer les espaces après un point.
Copié !
1%macro AHGalign(allvar);
2 %local var i;
3 %DO i=1 %to %AHGcount(&allvar);
4 %let var=%scan(&allvar,&i);
5 &var=PRXCHANGE('s/\s*(\d+)\s*\((\S*)\s*\)/\1 (\2)/',-1,&var);
6 &var=PRXCHANGE('s/(\b\d\b)/ \1/',-1,&var);
7 &var=PRXCHANGE('s/(\b\d\d\b)/ \1/',-1,&var);
8 &var=PRXCHANGE('s/(\.\s*)/./',-1,&var);
9 %END;
10%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.