Hi all,
I have the following for loop:
What I would like to do actually is avoid to perform the operations from
to the end when `agg' == product and `rec'==dummy_1 (hence I would like to perform it just for all the other cases: product-dummy_2, product-dummy_3, product-dummy_4, firm-dummy_1, firm-dummy_2...atc2-dummy_4). Actually the if that I put does not seem too work. In particular it avoids the operations for all the aggregations with "product" (so for all product-dummy_1, product-dummy_2, product-dummy_3 and product-dummy_4).
The real problem is actually that stack accepts only earliest and the Database product-dummy_1 has only one av_t.
Is there a way to do so? I was thinking about defining "stack" as a local...
Thank you,
Federico
I have the following for loop:
Code:
set more off local recall "dummy_1 dummy_2 dummy_3 dummy_4" foreach rec of local recall { local aggr "product firm atc2" local expl "sales stdunits price" foreach agg of local aggr { foreach k of local expl { use "/Users/federiconutarelli/Dropbox/Federico/store_DB_analyses/DB_`agg'_`rec'_`k'_nomiss.dta", clear estimates restore `agg'_`rec'_`k' // serve per attivare le regressioni predict av_t, res replace av_t = round(av_t, .111) predict stdres, stdr predict stdyhat, stdp predict stdyj, stdf gen var_avt = stdyj - stdyhat replace var_avt = stdyhat su ritiri, meanonly forval j = 1/`r(max)'{ gen av_t`j' = av_t gen var_avt`j' = var_avt } save "/Users/federiconutarelli/Dropbox/Federico/store_DB_analyses/grafici_e_DB/demeaned_`agg'_`rec'_`k'.dta", replace merge 1:1 _n using "/Users/federiconutarelli/Dropbox/Federico/store_DB_analyses/DB_`agg'_`rec'_`k'_nomiss.dta" save "/Users/federiconutarelli/Dropbox/Federico/store_DB_analyses/grafici_e_DB/demeaned_`agg'_`rec'_`k'.dta", replace local avt su ritiri, meanonly forval j = 1/`r(max)'{ local avt `avt' av_t`j' var_avt`j' rescaled`j' } if "`agg'"~="product" & "`rec'"~= "dummy_1"{ stack `avt', into(mean_avt var_avt rescaled) clear } save "/Users/federiconutarelli/Dropbox/Federico/store_DB_analyses/grafici_e_DB/stacked_mean_`agg'_`rec'_`k'.dta", replace clear } } }
Code:
local avt su ritiri, meanonly
The real problem is actually that stack accepts only earliest and the Database product-dummy_1 has only one av_t.
Is there a way to do so? I was thinking about defining "stack" as a local...
Thank you,
Federico
Comment