Hi Wriccar-
If I understand your post correctly, you're going to be running the same model with different inputs. I would wrap the entire thing in a macro, and run it once for each combination. If you're using different input datasets each time, add them to the macro.
The neat trick to doing it this way is that you have to put the commas in, but don't have to supply values for everything, as it's just text substitution (I tend to put the ones that might be short values at the end).
Something else you might want to consider is to manipulate your results for a run into a dataset with a little selecting and PROC TRANSPOSE if neccessary. If you name the datasets with a leadoff that is not used for anything else, you can put them all together using the colon notation, and not have to know (and type) all the names.
Another thought might be to use PROC SQL to do your initial dataset and avoid all that sorting. I've put a complete guess at the bottom .
Hope this helps!
Wendy T
%MACRO TESTTREAT(MODELID, VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9, VAR10, VAR11) ;
.... program statments here
MODEL &MODELID = &VAR1 &VAR2 &VAR3 &VAR4 &VAR5 &VAR6 &VAR7 &VAR8 &VAR9 &VAR10 &VAR11 ;
.... program statements here
.... put results for the run together ....
DATA RESULT_&MODELID ;
%MEND ;
%TESTTREAT(NI_D, GROWTH, EISSUE, LEV, DISSUE, TURN, SIZE, CF_S, NUMEX, XLIST, CLOSE, ROL) ;
%TESTTREAT(aaa, bbb, ccc, ddd, eee, fff, ggg, hhh, iii, jjj, kkk, lll) ;
%TESTTREAT(aaa, bbb, ccc, ddd, eee, fff, ggg, hhh, iii, jjj, , , ) ;
.... however many times you need for all the models ....
.... put the result datasets together ....
DATA ALL_RESULTS ; SET RESULT_: ;
RUN ;
... shot in the dark using SQL ...
PROC SQL NOPRINT ;
CREATE TABLE POOLED1
AS SELECT *
FROM PRETR_R, POSTTR_R, PREBN_R, POSTBN_R
GROUP BY DSCD FYEAR,
ORDER BY REPLICATE;
QUIT ;
... View more