- data have;
- input var1-var9;
- cards;
- 1 1 1 1 1 1 1 1 1
- ;
- run;
- %macro select(dsn, start, end,outdsn,seed);
- data &outdsn;
- set &dsn (obs=0);
- run;
- proc transpose data=&dsn out=temp;
- run;
- %do i=&start %to &end;
- %let ncomb=%sysfunc(comb(&end,&i));
- %do j=1 %to &ncomb;
- %let seed=%eval(%sysfunc(round(%sysfunc(ranuni(&seed))*100000000)+&j);
- proc surveyselect data=temp out=select&i&j(keep=_name_ col1) method=srs rep=1
- sampsize=&i seed=&seed;
- id _all_;
- run;
- data select&i&j;
- set select&i&j;
- col1=0;
- run;
- data temp&i&j;
- set temp;
- run;
- data temp&i&j;
- update temp&i&j select&i&j;
- by _name_;
- run;
- proc transpose data=temp&i&j out=final&i&j(drop=_name_);
- run;
- data &outdsn;
- set &outdsn final&i&j;
- run;
- %end;
- %end;
- %mend;
- %select(have,1,9, want,388487)