[R] panel data

David Winsemius dwinsemius at comcast.net
Fri Apr 2 22:31:12 CEST 2010


On Apr 2, 2010, at 3:39 PM, Geoffrey Smith wrote:

> Hello, I have an unbalanced panel data set that looks like:
>
> ID,YEAR,HEIGHT
> Tom,2007,65
> Tom,2008,66
> Mary,2007,45
> Mary,2008,50
> Harry,2007,62
> Harry,2008,62
> James,2007,68
> Jack,2007,70
> Jordan,2008,72
>
> That is, James, Jack, and Jordan are missing a YEAR.
>
> Is there any command that will "fill in" the missing YEAR such that  
> the end
> result will be balanced and look like:
>
> ID,YEAR,HEIGHT
> Tom,2007,65
> Tom,2008,66
> Mary,2007,45
> Mary,2008,50
> Harry,2007,62
> Harry,2008,62
> James,2007,68
> James,2008,NA
> Jack,2007,70
> Jack,2008,NA
> Jordan,2007,NA
> Jordan,2008,72

It's not "one command" but it's an approach ...  assumes you have data  
in a dataframe named ftbl:

 > fexp <- expand.grid(ID=unique(ftbl$ID), YEAR=unique(ftbl$YEAR))
 > merge(fexp, ftbl, all=TRUE)

        ID YEAR HEIGHT
1   Harry 2007     62
2   Harry 2008     62
3    Jack 2007     70
4    Jack 2008     NA
5   James 2007     68
6   James 2008     NA
7  Jordan 2007     NA
8  Jordan 2008     72
9    Mary 2007     45
10   Mary 2008     50
11    Tom 2007     65
12    Tom 2008     66



  --

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list