BookmarkSubscribeRSS Feed
Bipingaud
Calcite | Level 5

Hii, can any one plz tell how can we retrieve a single random observation(row) from a data set?

3 REPLIES 3
Shmuel
Garnet | Level 18

you can use:

    set input(obs=1, firstobs=) ;  /* change firstobs to any row number you want */

BrunoMueller
SAS Super FREQ

Hi

 

You can use some options on the SET statement to achieve this, see example below. Please be aware when using the POINT= option, you also need a STOP statement, as otherwise the DATA Step will loop. Have a look in the doc at the description of the POINT= and NOBS= options. The variable name used in the POINT= option is not written to the output dataset, this is why I use two variables.

 

data want;
  getObs = ceil( ranuni(0) * numObs);
  _getObs = getObs;
  set sashelp.cars point=_getObs nobs=numObs;
  output;
  stop;
run;

Also look at Proc SURVEYSELECT for more sophisticated ways to get a random sample from a SAS data set

 

Bruno

Ksharp
Super User

proc surveyselect data=sashelp.class out=want sampsize=1;
run;

Develop Code with SAS Studio

Get started using SAS Studio to write, run and debug your SAS programs.

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
  • 3 replies
  • 4347 views
  • 3 likes
  • 4 in conversation