Basically, in a longitudinal sample, I want to identify firms that experienced a high decrease in sales (set decrease=2), low decreases (set decrease=1), no decrease (set decrease = 0), taking into account 5 years. To make things more complicated, I want to consider as "no decrease" also the firms that experienced just one decrease year-on-year, since one decrease may happen accidentally, so I need a variable to count how many times, in the five years, growth happened).
Thanks for taking the time to help me
Code:
foreach i of firm
{
forvalues year=(2009(1)2013)
{
gen decrease`i'=2 if max(sales_growth`year,i')< -4
//decrease 2 == HIGH DECREASE: max decrease of the i-th firm with respect to 2008 larger than 4%
replace decrease`i'=1 if max(sales_growth`year,i')> -4 & max(sales_growth`t')< 0
//decrease 1 == LOW DECREASE: max decrease the i-th firm with respect to 2008 between 0 and 4%
generate countgrowth`i'=0
replace countgrowth=countgrowth`i'+1 if (sales_growth`year,i')> 0
//I check how many times sales_growth of the i-th firm was positive
}
replace decrease`i'=0 if countgrowth`i'>3
//if a firm's sales growth was always positive, countgrowth schould be 5, if only one decrease occcurred, it should be 4, we're good with both, since one accidental decrease may happen
}
0 Response to Using indented foreach and forvalues
Post a Comment