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;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.
Ready to level-up your skills? Choose your own adventure.