Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: create dummy variables for every 5 values


From   Sergio Correia <sergio.correia@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: create dummy variables for every 5 values
Date   Thu, 10 Nov 2005 23:32:19 -0500

Well, the idea is to make the dummies from that variable using the
tab dummy, g(dummy)
command that Lynda described. The recode alternative is useful except
if you have many years and therefore require many dummies, for each
5-year period.

Sergio



On 11/10/05, Nick Cox <n.j.cox@durham.ac.uk> wrote:
> 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/
>

*
*   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/



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index