%macro df_lag(data= ,index=, n=, delim=);
%let i=1;
%do %while(%scan(%quote(&index), &i, %quote(&delim)) ne );
%let Nindex=%scan(%quote(&index),&i, %quote(&delim));
        %let j=1;
        %do j=1 %to &n;
        data &data;
                set &data;
                lg&j&Nindex=lag&j.(&Nindex);
        run;
        %end;
%let i=%eval(&i+1);
%end;
%mend;
options symbolgen;
%df_lag(data=sashelp.prdsale,index=%str(predict,actual,year),n=3, delim=',');