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

 From "Austin Nichols" To statalist@hsphsun2.harvard.edu Subject Re: st: creating a balanced panel from an unbalanced panel Date Fri, 28 Mar 2008 16:11:03 -0400

```Vladimir Vakhitov <vvakhitov@gmail.com> and Jeremy Page <miahpage@gmail.com>:
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 <vvakhitov@gmail.com> 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
>
>
>  2008/3/28, Jeremy Page <miahpage@gmail.com>:
>  >  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:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/
```