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;
Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.
If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website.
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.