- data aaa;
- input label1$ var1 label2$ var2;
- cards;
- a 1 b 4
- a 2 b 5
- a 3 b 6
- ;
- run;
- options mlogic mprint symbolgen;
- %macro bbb;
- %let vars=var1 var2;
- %let n=%eval(%sysfunc(countc("&vars",' '))+1);
- data _null_;
- set aaa;
- %do j = 1 %to &n ;
- call symput("vlabel&j",label&j);
- %end;
- run;
- data aaa1;
- set aaa;
- %let i =1;
- %do %while (%scan(&vars. , &i.) ne %str());
- %let var=%scan(&vars,&i);
- label &var= %nrbquote(&&vlabel&i);
- %let i=%eval(&i +1);
- %end;
- run;
- %mend;
- %bbb