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
>
> 2) answer
> 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/