Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

# Re: st: How to Randomly Assign 4 Integers to a Dataset?

 From "Seed, Paul" To "statalist@hsphsun2.harvard.edu" Subject Re: st: How to Randomly Assign 4 Integers to a Dataset? Date Fri, 12 Nov 2010 19:45:33 +0000

```A two-line solution to Charlie's problem is

gen x = 5*int(4*runiform())
recode x 0 = 1

This does not guarantee equal sized groups, but the individual
values of x are randomly selected from a uniform distribution.

Alternatively:
gen x = runiform()
sort x
replace x = 5*int(4*(_n-1)/_N)
recode x 0 = 1

This will give near-equal-sized groups

Paul Seed, Senior Lecturer in Medical Statistics,
King's College London, Division of Women's Health

On Thu, Nov 11, 2010 at 6:17 PM, Carly Petracco <carly.k.p@gmail.com> wrote:
>  I have 4 values that I want to randomly assign to the observations in
> my dataset.
>  I do not want this to occur over a range (I know about runiform), all
> I have 4 integers (i.e. 1, 5, 15, 20) that I want to randomly assign
> to my observations, how do I do that?
>  I have not been able to find a solution for this problem on the web
> or in previous questions, so any help would be greatly appreciates!
>
>  Best,
>  Charlie

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/
```