options nocenter; ** To use all available memory, run using ; ** sas -memsize 0m -maxmemquery 0m transpose_nmrc.sas ; *options obs=6; *libname library "/disk/scratch7/jroth"; libname library "~/bulk/cost-reports/hosp/"; options user=library; ** re-assign where WORK. datasets go ; %let t_0 = %sysfunc (datetime()); * by Jean Roth, 2003-12-19 ; * Please report any problems or errors to jroth@nber.org * NOTE: This program is distributed under the GNU GPL. * See http://www.gnu.org/licenses/ for details. ; * Copyright 2004 shared by the National Bureau of Economic Research and Jean Roth ; %let user=; %macro loop(fyear=,lyear=); %do year=&fyear. %to &lyear.; proc sort data=library.nmrc&year.&user. out=xx; by rpt_rec_num; proc print data=xx (obs=6); proc transpose data=xx out=library.nmrc&year.&user.t (drop = _NAME_); by rpt_rec_num; var itm_val_num; id varname; run; %let t_1 = %sysfunc (datetime()); %let elapsed = %sysevalf(%sysevalf (&t_1 - &t_0)/60); title3 "Elapsed time: &elapsed. minutes"; proc print data=library.nmrc&year.&user.t (obs=6); run; %end; %mend; %*loop(fyear=1995,lyear=2009); %*loop(fyear=1996,lyear=1997); %*loop(fyear=1996,lyear=1998); %*loop(fyear=1998,lyear=1998); %*loop(fyear=1999,lyear=1999); %*loop(fyear=2000,lyear=2005); %*loop(fyear=2005,lyear=2006); %*loop(fyear=2008,lyear=2008); %loop(fyear=2009,lyear=2009);