Solved
New Contributor
Posts: 2

# random sample from another data set

[ Edited ]

I have no idea how to get started on this. I was thinking of creating an array with DO LOOPS to get the observation but not sure

where to start it as I am very new to SAS.

Please let me know if you need anything else. I will be attaching a sample of my code soon.

Thanks!

Accepted Solutions
Solution
‎12-08-2017 08:52 AM
PROC Star
Posts: 1,146

## Re: random sample from another data set

[ Edited ]

I would probably do this in two distinct PROC SURVEYSELECT steps like below.

I made example data set from sashelp.cars and made arbitrary mileage categories for demonstration purposes

``````data cars;
set sashelp.cars;
length mileage \$20;
else if 16<=mpg_city<25 then mileage='Fair';
else if 25<=mpg_city<30 then mileage='Good';
else mileage='Excellent';
do i=1 to 100; output; end;
drop i;
run;

proc sort data=cars;
by mileage;
run;

proc surveyselect data=cars out=sample1 method=srs n=200 noprint;
strata mileage;
run;

proc surveyselect data=cars out=sample2 method=srs samprate=0.01 noprint;
where mileage in ('Fair', 'Good');
strata mileage;
run;

data finalsample;
set sample1 sample2;
run;``````

All Replies
Highlighted
Super User
Posts: 22,583

## Re: random sample from another data set

Try PROC SURVEYSELECT

Posts: 5,339

## Re: random sample from another data set

Look at the strata statement and the Secondary input dataset feature of proc surveyselect.

PG
Solution
‎12-08-2017 08:52 AM
PROC Star
Posts: 1,146

## Re: random sample from another data set

[ Edited ]

I would probably do this in two distinct PROC SURVEYSELECT steps like below.

I made example data set from sashelp.cars and made arbitrary mileage categories for demonstration purposes

``````data cars;
set sashelp.cars;
length mileage \$20;
else if 16<=mpg_city<25 then mileage='Fair';
else if 25<=mpg_city<30 then mileage='Good';
else mileage='Excellent';
do i=1 to 100; output; end;
drop i;
run;

proc sort data=cars;
by mileage;
run;

proc surveyselect data=cars out=sample1 method=srs n=200 noprint;
strata mileage;
run;

proc surveyselect data=cars out=sample2 method=srs samprate=0.01 noprint;
where mileage in ('Fair', 'Good');
strata mileage;
run;

data finalsample;
set sample1 sample2;
run;``````

☑ This topic is solved.