Without sample data, there's not much we can do to help with your specific need..
Here's an outline of an approach to solve your problem.
Create your input data (INSETS):
*Number of datasets;
%let num_dsets=31;
*No sample data -- create 31 INSETS;
data _null_;
do i=1 to &num_dsets;
num=put(i, z2.);
call execute(cats('data INSET_', num, ';',
'NONSENSE = "Hello from Dataset #', num, '";', 'RAND_NUM = ranuni(', i,
');', 'run;'));
end;
run;
Write macro to do what you want with each INSET:
*Write macro to do something;
%macro dosomething(dsin=, num=);
data OUTSET_&num.;
set &dsin.;
OTHER_NONSENSE=cats("Hello from Macro (where inset =", &num., ")");
run;
%mend;
Apply macro on each INSET using a data _null_ step:
*Run macro on all INSETS;
data _null_;
do i=1 to &num_dsets;
num=put(i, z2.);
call execute(cats('%dosomething(dsin=INSET_', num, ',num=', num, ')'));
end;
run;
Combine your outputs how you wish:
*Combine results;
data combined;
set work.outset:;
run;
... View more