Hi
I have a code that is very very long and extensive.
How do i generalize/ normalize and make it reusable, that can be changed easily for a slightly different purpose?
Eg: i have something like
1) proc sql; create table NEW as (SELECT * FROM TBL A LEFT JOIN TBLB B on A.COL1= B.COL2); QUIT;
and a ...
few more left join proc sql subqueries with casewhen statements,
2) few retain and set stmts
DATA new ;
RETAIN a b c ; SET old; RUN;
3) Few infile stmts data WORK.new; %let _EFIERR_ = 0; /* set the ERROR detection macro variable */ infile 'C:\DESKTP.csv' delimiter = ',' MISSOVER DSD lrecl=32767 firstobs=2 ; informat a $3. ; informat b $6. ; format a $3. ; input a $ ; if _ERROR_ then call symputx('_EFIERR_',1); /* set ERROR detection macro variable */ run;
Few things that I had already tried are - using %let or macro passing parameters in several places.. but does not make sense to use %let for proc sql left join tables .. #1 above
for #3, I tried csv to import macros but couldnt apply informats and formats so had to stick to infile.. The goal here is to make it as reusable as it can be by changing a few things here and there.
I also tried splitting up the code into parts for ease of understanding and then make my final code have only these statements below:-
%include '..\part1.sas'
...
..
%include '..\part7.sas'
Any suggestions are welcome. Thanks!
... View more