Solved
Highlighted
New Contributor
Posts: 4

# 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,763

## 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.

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.importmethod=srs n=38out=work.samplesrs;run;`

All Replies
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,763

## 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.importmethod=srs n=38out=work.samplesrs;run;`

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

## 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.

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.importmethod=srs n=38out=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,763

## 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.

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