# RE: st: create dummy variables for every 5 values

 From "Nick Cox" To Subject RE: st: create dummy variables for every 5 values Date Thu, 10 Nov 2005 23:20:29 -0000

```I doubt that this is what is wanted here.
Typically, unless the dataset contains just
10 observations, it will give a dummy variable
that is not a dummy variable. Even in Sergio's
toy example it takes on 6 distinct values.

Lynda mentioned a solution, which can be tweaked to

gen yr=year
recode yr (1991/1995=0)(1996/2000=1)

The -tabulate- does nothing useful as -yr- is already a dummy.

In this situation, I would not use -recode-, but
that's mostly taste. Other solutions are

gen dummy = 0 if inrange(year,1991,1995)
replace dummy = 1 if inrange(year,1996,2000)

or

gen dummy = cond(inrange(year,1991,1995), 0, cond(inrange(year,1996,2000), 1,. ) )

but there's not much to choose between solutions, so long
as you don't falsely map any years not 1991-2000 to either 0 or 1.

Nick
n.j.cox@durham.ac.uk

Sergio Correia

> Try this:
>
> 1) create example file
> set obs 30
> gen year=1990+_n
>
> gen dummy = ceil(_n/5)
>
> The trick is in using the ceil function with the _n variable.

Lynda Zhang

> >  I have a variable Year:
> > ...
> > 1991
> > 1992
> > 1993
> > 1994
> > 1995
> > 1996
> > 1997
> > 1998
> > 1999
> > 2000
> > ...
> >
> > How do I create one dummy variable for each 5-year interval with one
> > command.
> >
> > Typically I can get it manually by generating one dummy at a time
> > gen year1=1 if year>=1991 & year<=1995
> > ...
> >
> > or using Recode:
> > gen yr=year
> > recode yr (1991/1995=1)(1996/2000=2)
> > tab yr, g(y)

*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/
```