[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: creating a balanced panel from an unbalanced panel

From   "Austin Nichols" <>
Subject   Re: st: creating a balanced panel from an unbalanced panel
Date   Fri, 28 Mar 2008 16:11:03 -0400

Vladimir Vakhitov <> and Jeremy Page <>:
The solution below does not give the desired result, but substitute _N
for _n and it does.  Or in one:
 bys id: g balanced = (_N==7)

However, observations may exist and yet contain missing values and
therefore be excluded from the regression.  Thus you need something
more like
 qui xtreg y x, i(id) fe
 g ok=e(sample)
 egen sumok=total(ok), by(id)
 su sumok, meanonly
 g allok=(sumok==r(max))
 xtreg y x if allok==1, i(id) fe

On Fri, Mar 28, 2008 at 3:20 PM, Vladimir Vakhitov <> wrote:
> Hi Jeremy,
>  I would use a simple trick (ID is your panel variable):
>  tempvar q
>  bysort id: gen `q' = _n
>  gen byte balanced = 0
>  replace balanced = 1 if `q'==7
>  Vladimir.
>  2008/3/28, Jeremy Page <>:
>  >  I have an unbalanced panel of seven period and I would like to be able
>  >  to make a subset of a balanced panel.  I have created dummy variables
>  >  (T1-T7) for each of the time periods as well as a continuous variable
>  >  labeled time (1-7).  I would like to create another dummy variable to
>  >  use in the "if" qualifier of a regression which would be "balanced=1"
>  >  if there are observations in all 7 periods.
*   For searches and help try:

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