(Apologies for previous premature post.)
You could identify the problematic
observations upstream and ignore
them systematically. Also the -regress-
must be on subsets for this to make sense.
use data
gen coeff = .
egen nmiss = rmiss(gdp year)
encode countrycode if nmiss == 0, gen(id)
su id, meanonly
qui forval i = 1/`r(max)' {
reg gdp year if id == `i'
replace coeff=_b[year] if id == `i'
}
Note also -statsby-.
Nick
[email protected]
Dev Vencappa
>
> Thank a lot Dev. But I ran into a rather weird problem while
> applying it to real data. It seems that the loop abruptly
> stops whenever their are missing values for variables used
> in the regression. In my case, the data starts with e.g. BAN
> and gdp for BAN is all missing like this:
>
> Country Code Year GDP
> BAN 1960 .
> BAN 1965 .
> BAN 1970 .
>
>
> The loop does not produce any result and gives "no
> observation" and just stops.
>
> Any suggestions?
>
> Kakatua
> I tired with some fake data where I had missing values for a
> variable and could not replicate this problem . But try to
> add an extra condition in the loop, which is to ignore
> observations that have missing values for GDP. Therefore,
> your new loop would be:
>
> use data
> sort countrycode year
> encode countrycode,gen(id)
> tsset id year
> gen coeff=.
> forv id=1/2 {
> reg gdp year
> replace coeff=_b[year] if id==`id' & gdp!=.
> }
>
> Give that a try.
*
* 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/