You could calculate your own sample sizes, as in this example: /* An example dataset with file1 : 18 units in 6 strata file2 : 28 units in 4 strata */ data test; file = "file1"; do type = 1 to 2; do LOB = 1 to 3; do i = 1 to 3; x + 1; output; end; end; end; file = "file2"; do type = 1 to 2; do LOB = 1 to 2; do i = 1 to 7; x + 1; output; end; end; end; drop i; run; /* Compute the sample sizes */ %let sampleSize=20; proc sql; create table sampSize as select file, type, LOB, min(strataSize, ceil(&sampleSize.*strataSize/sum(strataSize))) as _NSIZE_ from ( select file, type, LOB, count(*) as strataSize from test group by file, type, LOB) group by file; quit; /* Extract the sample */ PROC SURVEYSELECT DATA=test OUT=testOut METHOD=SRS N=sampSize; STRATA file Type LOB; RUN; PG
... View more