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;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!
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.