La procédure suivante
proc transpose data=infic
prefix=cnt
out=outfic;
var nocnt;
by client;
run ;
va générer cnt1 à cntn. Comment récupérer le nombre de variables générées (n) dans une étape data ?
Merci.
Pour mettre ce nombre dans une macro-variable, voici un premier programme :
DATA _NULL_ ;
SET outfic ;
ARRAY transpose cnt: ;
CALL SYMPUT ("nbNllesVar", DIM(transpose)) ;
STOP ;
RUN ;
Vous récupérez le nombre de variables créées par la procédure TRANSPOSE dans la macro-variable &nbNllesVar.
Pour disposer de ce nombre sous forme de variable dans l’étape Data, il suffit de modifier légèrement ce programme :
DATA ... ; SET outfic ; ARRAY transpose cnt: ; nbVar = DIM(transpose) ; /* il est également possible d'opérer des traitements avec une boucle sur l'Array : DO i = 1 TO DIM(transpose) ; traitement sur transpose(i) END ; */ RUN ;