This solution may well work for your set-up, but
it is not the most general solution. Next time
you have an unbalanced panel, no such trick
is guaranteed to work. A secondary disadvantage
is that unless you add a comment to your
do or log files, the rationale for this approach
will be increasingly difficult to remember.
Another approach is as follows:
gen real = exch if year == 2000
bysort id (real) : replace real = real[1]
The logic of this is very Stataish.
In the first statement, we ensure that
only values for 2000 are used. For
years other than 2000, -real- is thus set
to missing.
Thus after
bysort id (real):
the data will look somewhat like this:
id year real
Australia 2000 whatever
Australia 1992 .
Australia 1994 .
Australia 2002 .
...
Austria 2000 something else
Austria 1999 .
Austria 1989 .
....
so that
replace real = real[1]
will then copy values downward within
each panel. Also, if any panel
does not include values for 2000, then all
values of -real- will end up missing for
that panel.
There is some database jargon for this process
of "spreading" a value to an appropriate subset
of the data. Perhaps it is "spreading", but I've
forgotten what it is. Anyway, a database expert on this
list may be able to remind me.
Nick
[email protected]
Nico
I figured it [...]
I sorted by id and then subscripted my exchange rate
for the 11th obvservation, which is the year 2000 in
my case:
by id: gen real=exch[11]
As far as I can tell, it worked.
--- Nico
> I have a panel of 50 countries, 14 years, with the
> dollar exchange rate being one of the variables.
> For
> example:
>
> Australia 1990 austexch1990
> Australia 1991 austexch1991
> Australia 1992 austexch1992
> Peru 1990 peruexch1990
> Peru 1991 peruexch1991
> Peru 1992 peruexch1992
> etc.
>
> The problem I am having is that I want to generate a
> variable equal to the exchange rate in 2000 for each
> country:
>
> Australia 1990 austexch2000
> Australia 1991 austexch2000
> Australia 1992 austexch2000
> Peru 1990 peruexch2000
> Peru 1991 peruexch2000
> Peru 1992 peruexch2000
> etc.
>
> It must be very easy to do, but I don't know how to
> specify it. I don't believe any of the expressions
> listed in help for 'egen' serve me either. Any
> suggestions would be appreciated.