|
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]
Re: st: transform observations in variables
Consider -period- 1. Then
(period == 1) * size
is 0 when -period- is not 1 and -size- when -period- is 1. So
egen period1 = total((period == 1) * size), by(familyname)
should do the trick so long as -period- is 1 just once for each family.
Similarly, the other -period- values should fall to the same trick:
forval i = 1/3 {
egen period`i' = total((period == `i') * size), by(familyname)
}
Now one problem is apparent: family AB for example is not observed at
periods 2 and 3. So -period2- and -period3- will be 0 for that family.
If -size- can only be positive, then no problem: 0 means missing, and
that can be fixed.
If -size- can be zero, then some other solution will be needed.
If each value of -period- can occur more than once for each family, then
that is soluble, but I'll wait to hear that can happen.
Nick
permanent address:[email protected]
Fabian Brenner
My data look like the following:
"familiyname" "period" "size" "period1" "period2"
"period3"
AA 1 8
AA 2 7
AA 3 3
AB 1 4
BG 1 4
BG 2 8
For each "familyname" I want to get the values of "size" in the column
with the equivalent "period" (1 to 3). The values of "size" should be
written in the column of the equivalent period for all observations of
the same "familyname" (that is why I wasn't able to manage it with -if-)
The result should be:
"familiyname" "period" "size" "period1"
"period2" "period3"
AA 1 8 8
7 3
AA 2 7 8
7 3
AA 3 3 8
7 3
AB 1 2 2
BG 1 4 4
6
BG 2 6 4
6
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/