logo

Macro : faire un SET avec un nombre de tables variable

J’ai un nombre de tables (de 1 à 40 ou 50, il faut que soit un paramètre) et avec un SET j’en crée une seule. Comment écrire ça sans répéter 40 ou 100 fois le noms des tables dans le SET.

data ww.CMb;
  set 
     ww.CM1b
     ww.CM2b
     ...
     ww.CM40b;
run;

Merci

Bonjour, et merci de votre question.

Vous pouvez utiliser un programme comme celui-ci :

%MACRO empilement (nbTables) ;
   DATA ww.CMb ;
      SET
        %DO i=1 %TO &nbTables ;
          ww.CM&i.b
        %END ;
      ;
    RUN ;
 %MEND empilement ;
%empilement (40)

A partir de SAS 9.2, plus besoin de macros ! Vous pouvez écrire directement

SET ww.CM1-ww.CM40 ;

dans votre étape Data. Par contre, comme dans votre cas le nom des tables ne se termine pas par un nombre, il faudra rester à la solution macro.