## how to get sampled output data without sorting

Hi, every one.

Recently, I am trying to select some sample using PROC SURVEYSELECT procedure.

I want to give the sequence the obeservtion, for example, the I have 5 observation, 1 to 5.

the sequecne for sampling without replacement may be is 3 5 4 1 2.

but, everytime the sas only give me the output data which has been sorted.

so, i only can have a data set is 1 to 5.

I check the statement, the sort statement also does not provide the function I asked.

if there is a easy way to get the results I want?

1 ACCEPTED SOLUTION

Accepted Solutions  PGStats
Opal | Level 21

## Re: how to get sampled output data without sorting

if you want your sample to appear in random order, you must generate the permutation yourself. For example:

``````data test;
call streaminit(76575);
do x = 10 to 1 by -1;
order = rand("UNIFORM");
output;
end;
run;

proc surveyselect data=test out=sample5 sampsize=5 seed=866787;
run;

proc sort data=sample5 out=sample5(drop=order); by order; run;``````
PG
3 REPLIES 3

## Re: how to get sampled output data without sorting

You should post some code and what your input data looks like and what you expect.

## Re: how to get sampled output data without sorting

I would expect Proc Surveyselect to use an algorithm where it choses each record with a certain probability. If so then the sort order of the target data set should be the same like the one of the source data set (like: obs3, obs7, obs9,...).  PGStats
Opal | Level 21

## Re: how to get sampled output data without sorting

if you want your sample to appear in random order, you must generate the permutation yourself. For example:

``````data test;
call streaminit(76575);
do x = 10 to 1 by -1;
order = rand("UNIFORM");
output;
end;
run;

proc surveyselect data=test out=sample5 sampsize=5 seed=866787;
run;

proc sort data=sample5 out=sample5(drop=order); by order; run;``````
PG
Discussion stats
• 3 replies
• 886 views
• 0 likes
• 4 in conversation