Two answers:
1. Use -tsset- and exploit Stata's time-series operators.
tsset group time
gen x = y
replace x = constant * L.x
2. Use -if- not -in-.
gen x = y
bysort group (time): replace x = constant * x[_n-1] if _n > 2
Nick
n.j.cox@durham.ac.uk
Bjorn Persson <bpersson@bu.edu>
I am trying to create a variable that depends on its lagged values, and
I received this very helpful tip from Statalist:
gen x = y in 1
replace x = constant*x[_n-1] in 2/l(ast)
I am now wondering how to to this for different groups. That is,
gen x(i) = y(i) in 1(i)
replace x(i) = constant*x(i)[_n-1] in 2(i)/l(i)
for groups i=1,2,3...
I have tried to sort the data using "by", but the "by" command does not
allow the "in" specification.
*
* 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/