Write and run SAS programs in your web browser

Randomly generate names from a column (name) and group the generated random names in groups of 4.

Accepted Solution Solved
Reply
New Contributor
Posts: 4
Accepted Solution

Randomly generate names from a column (name) and group the generated random names in groups of 4.

I'm using sas studio how do I generate random names from a group of 200 obs and group the names in groups of 4. Thanks


Accepted Solutions
Solution
‎02-05-2018 05:44 PM
Super User
Posts: 23,224

Re: Randomly generate names from a column (name) and group the generated random names in groups of 4

You want an N=4 and REPS=50. Note that you've specified SRS which is Simple Random Sample which means names can be repeated.

 

delete_surveyselect.JPG

 


bobtalam wrote:

Thanks for you response. I do have this as my code, but I don't know where to put the specification to group them into group of 4. 

proc surveyselect data=work.import
method=srs n=38
out=work.samplesrs;
run;

 


 

View solution in original post


All Replies
Super Contributor
Super Contributor
Posts: 266

Re: Randomly generate names from a column (name) and group the generated random names in groups of 4

[ Edited ]

Are you asking how you would assign each of 200 observations randomly to one of four groups?

 

If you are, PROC SURVEYSELECT might be where you want to go.

New Contributor
Posts: 4

Re: Randomly generate names from a column (name) and group the generated random names in groups of 4

I wanted to randomly assign them into 50 groups of 4 participants in each.

Super User
Posts: 23,224

Re: Randomly generate names from a column (name) and group the generated random names in groups of 4

PROC SURVEYSELECT is the way to go then. The documentation has examples, if you have issues with the implementation post your code, referencing the SASHELP.CLASS data set or including sample data.

 

The 'manual' way would be to create a random number, sort by random number, Group each 4 together using the MOD() function.

 


bobtalam wrote:

I wanted to randomly assign them into 50 groups of 4 participants in each.


 

New Contributor
Posts: 4

Re: Randomly generate names from a column (name) and group the generated random names in groups of 4

Thanks for you response. I do have this as my code, but I don't know where to put the specification to group them into group of 4. 

proc surveyselect data=work.import
method=srs n=38
out=work.samplesrs;
run;

 

Solution
‎02-05-2018 05:44 PM
Super User
Posts: 23,224

Re: Randomly generate names from a column (name) and group the generated random names in groups of 4

You want an N=4 and REPS=50. Note that you've specified SRS which is Simple Random Sample which means names can be repeated.

 

delete_surveyselect.JPG

 


bobtalam wrote:

Thanks for you response. I do have this as my code, but I don't know where to put the specification to group them into group of 4. 

proc surveyselect data=work.import
method=srs n=38
out=work.samplesrs;
run;

 


 

New Contributor
Posts: 4

Re: Randomly generate names from a column (name) and group the generated random names in groups of 4

Is there a way I can set it not to repeat names?

Super User
Posts: 23,224

Re: Randomly generate names from a column (name) and group the generated random names in groups of 4

I would think so, but I can't seem to figure it out. I'm 99% sure there's a way though so I'll move it to the stats forum.

 

Here's the random variable method:

 

data _random;
set sashelp.class;
rand = rand('normal', 0, 25);
run;

proc sort data=_Random;
by rand;run;

data groups;
set _random;
if _n_=1 then group=0;

if mod(_n_, 2) = 1 then group+1;

run;
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 7 replies
  • 179 views
  • 1 like
  • 3 in conversation