手写的,你自己调试了%macro a;
%local method rotate pct i j k;
%let method=prin ml print;
%let rotate=varimax orthomax promax equamax;
%let pct=1 1.11 1.2 2.1 3.1;
%let i=1;
%do %while("%scan(&method,&i,%str(空格))" ne "");
%let j=1;
%do %while("%scan(&rotate,&j,%str(空格))" ne "");
%let k=1;
do %while("%scan(&pct,&k,%str(空格))" ne "");
proc factor data=a method=%scan(&method,&i,%str(空格)) rotate=
%scan(&rotate,&j,%str(空格) ) pct=%scan(&pct,&k,%str(空格)); var;run;
let k=%eval(&k+1);
%end;
%let j=%eval(&j+1);
%end;
%let i=%eval(&i+1);
%end;
%mend a;
%a;
|