Sure, specify the number of groups and the number of observations in each, then do the simulation within each group. For example:
%let NSIM=10;
%let NGROUPS=3;
%let NOBSPERGROUP=4;
DATA SIM;
call streaminit(331980);
do SampleID = 1 to ≁
do X = 1 to &NGROUPS; /* group ID */
do ObsNum = 1 to &NOBSPERGROUP;
/* put any computations here */
D1=0; D2=0;
if X=1 THEN DO; D1=0; D2=0; end;
if X=2 THEN DO; D1=1; D2=0; end;
if X=3 THEN DO; D1=0; D2=1; end;
M = &i0m + (&a1*D1)+(&a2*D2)+(&errorm)*RAND('NORMAL');
XM=X*m;
D1M=D1*M;
D2M=D2*M;
Y= &i0y +(&cp1*D1)+(&cp2*D2)+(&b*M)+(&h1*D1M)+ (&h2*D2M)+(&errory)*RAND('NORMAL');
OUTPUT;
end;
end;
end;
run;
proc freq data=sim;
tables SampleID*X / nocum norow nocol nopercent;
run;
... View more