BookmarkSubscribeRSS Feed
deleted_user
Not applicable
Hello everyone,

I have a dataset like:

MD# Volume
1 333
2 22
3 10
4 150
5 250
6 60
.
.
.

I want to randomly select MD, also weighted by Volume, giving high volume ones a higher chance to be selected.
I know there is a SIZE statement I can use as weighting function, but this statement can't be used for Simple Random Selection.
I wonder if anyone can tell me what other options I can use.

Thanks a lot,

SAS User999
2 REPLIES 2
Olivier
Pyrite | Level 9
Hello.
You have to add METHOD=PPS to the PROC SURVEYSELECT statement. PPS is the equivalent of simple random with weights. And use the SIZE statement.
[pre]
PROC SURVEYSELECT DATA=in
OUT=sample
METHOD=pps
SAMPRATE=rate
NOPRINT ;
SIZE volume ;
RUN ;
[/pre]
Regards.
Olivier
deleted_user
Not applicable
Thanks a lot, I tried this before. Here I need to use sampsize statement instead of samprate. PPS has a limitation on sampling size, which depends on relative size of weights variable.

Thank you again for the help

CFC_SAS_Communities_400x225.jpg

Call for content now open!

It's your turn to help shape SAS Innovate 2027. Share your expertise and inspire the SAS community.

Submit your proposal →

What is Bayesian Analysis?

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1465 views
  • 0 likes
  • 2 in conversation