Date: Mon, 31 Mar 2003 10:11:17 -0500
Reply-To: "Droogendyk, Harry" <Harry.Droogendyk@CIBC.COM>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: "Droogendyk, Harry" <Harry.Droogendyk@CIBC.COM>
Subject: Re: repeated code
Content-Type: text/plain; charset="iso-8859-1"
Use a macro loop within a macro.
Untested:
data one;
do stdsvc = 1 to 100;
output;
end;
run;
%macro do_lag(lmt);
data two;
set one;
stdsvc1 = stdsvc;
%do i = 1 %to &lmt;
stdsvc%eval(&i+1) = lag&i(stdsvc);
%end;
run;
%mend do_lag;
%do_lag(71)
proc print data=two;
run;
-----Original Message-----
From: Jean Roth [mailto:jroth@NBER.ORG]
Sent: Monday, March 31, 2003 9:45 AM
To: SAS-L@LISTSERV.UGA.EDU
Subject: repeated code
Hi Macro Mavens,
I'd like to create a bunch of lag variables for a dataset
data one;
set one;
svctyp1 = stdsvc;
svctyp2 = lag1(stdsvc);
...
svctyp72 = lag71(stdsvc);
Can I do this without a line of code for each lag variable?
Thanks,
Jean Roth
National Bureau of Economic Research
http://www.nber.org/data