Hey everyone! I am new to macros, so bare with me please! I have some program that produces some tables and plots for a certain dataset. What I am trying to do is use a macro, so that I can enter a different dataset (same columns, just a different year) and then get the tables and plots for that dataset. For example, I have 7 data sets in my folder and what I would like to do is somehow rename each dataset Cars1, Cars2,...Cars7, and then I want to use a macro so I can type in "Cars4" into my code once, and then the tables and plots will be generated for the Cars4 data set. Can anyone provide me with an example on how to do this? Thanks! %let weatherData = \\Client\C$\Math450\USC00010063.DLY;
DATA WEATHER;
INFILE "&weatherData";
INPUT Id $ 1-11
Year 12-15
Month 16-17
FEATURE $ 18-21 @22 (D1-D31)(5. +3);
RUN;
DATA TMIN TMAX;
SET WEATHER;
IF FEATURE ='TMIN' THEN OUTPUT TMIN;
ELSE IF FEATURE ='TMAX' THEN OUTPUT TMAX;
RUN;
PROC FREQ DATA=TMAX;
TABLES YEAR*Month/NOCOL NOROW NOPERCENT;
RUN;
PROC TRANSPOSE DATA=TMAX(DROP=id) OUT=LONG;
BY Year Month;
VAR D1-D31;
RUN;
PROC PRINT DATA=LONG;
RUN;
PROC SORT DATA=LONG;
BY Year Month;
RUN;
DATA play;
SET LONG;
BY Year Month;
IF first.Month THEN day=0;
day+1;
IF Month IN (4,6,9,11) & day=31 THEN DELETE;
IF Month=2 & day>29 THEN DELETE;
IF Month=2 & mod(Year,4)~=0 & day=29 THEN DELETE;
RUN;
DATA play;
SET play;
tdate=MDY(Month,day,Year);
FORMAT tdate mmddyy10.;
RENAME COL1=TMAX;
DROP _NAME_;
RUN;
DATA PLAY1;
SET PLAY;
TMAX1=.;
IF (COL1 = -9999) THEN TMAX1 =.;
RUN;
PROC PRINT DATA=PLAY1;
VAR Year Month Day Tdate TMAX1;
RUN;
PROC SGPLOT DATA = PLAY;
by Year;
scatter x = month y = TMAX;
RUN;
... View more