Publié le :
Macro MIXTE

Macro AHGsetvarLen : Modification de longueur de variable

Ce code est également disponible en : Deutsch English Español
En attente de validation
Cette macro change la longueur d'une variable spécifiée ('var') dans une table donnée ('dsn'). Elle fonctionne en créant une table temporaire vide contenant la variable avec la nouvelle longueur ('len'), puis fusionne cette structure avec la table d'origine. La technique du 'merge' sans clause 'by' (fusion 1-pour-1 implicite ici utilisée pour les attributs) permet d'imposer la nouvelle longueur. Enfin, elle appelle une macro externe (%AHGordvar) pour restaurer l'ordre des colonnes. Note : Ce script dépend de plusieurs autres macros non fournies (%AHGblank, %AHGbasename, %AHGgettempname, %AHGvarlist, %AHGordvar).
Analyse des données

Type : MIXTE


La macro opère sur une table SAS passée en paramètre (&dsn). Aucune donnée spécifique n'est chargée en dur.

1 Bloc de code
DATA STEP Data
Explication :
Définition de la macro. 1) Détermine le nom de sortie. 2) Récupère la liste des variables actuelles. 3) Crée une table vide forçant la nouvelle longueur de la variable cible. 4) Fusionne la table vide avec la table source (la longueur de la première table citée dans le MERGE prime). 5) Réordonne les variables.
Copié !
1%macro AHGsetvarLen(dsn,var,len,out=);
2 %IF %AHGblank(&out) %THEN %let out=%AHGbasename(&dsn);
3 %local empty varlist;
4 %AHGgettempname(empty);
5 %AHGvarlist(&dsn,Into=varlist,dlm=%str( ),global=0);
6 DATA
7 LENGTH &var &len;
8 RUN;
9 DATA &out;
10 MERGE &empty &dsn;
11 RUN;
12 %AHGordvar(&out,&varlist,keepall=0);
13%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.