[email protected]
>
> Let's say I have the following dataset:
>
> company year assets liabilities
> a 2001 100 25
> a 2000 90 30
> a 1999 105 45
> b 1999 205 105
> b 1998 200 80
> b 1997 60 15
>
>
> I wish to generate a new variable called assets1 where asset1=assets for
> the previous year for that company. How would I do this in Stata? Thank
> you for your help.
Nick Winter suggested
> . bysort company (year): gen assets1 = assets[_n-1] if year==year[_n-1]+1
> But take a look at the following on Stata's ability to deal with
> time-series explicitly:
> [U] 15.5.4 Time-series formats,
> [U] 27.3 Time-series dates,
> [U] 29.12 Models with time-series data,
> [R] tsset
Nick's suggestion is excellent. It solves your problem in one line.
But I would like to expand on his second point. You have panel data.
Declaring that to Stata via
tsset company year
and then being able to get the previous year's assets by
gen assets1 = L.assets
has the great advantages that Stata automatically respects
the panel structure of your data when calculating -assets1-,
that it does the smart thing with respect to any gaps,
and that you can do similar things directly with other
variables.
Nick
[email protected]
*
* 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/