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?
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;
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,...).
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;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.