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 ;