# Re: st: transform observations in variables

 From Nick Cox <[email protected]> To [email protected] Subject Re: st: transform observations in variables Date Mon, 22 Sep 2008 12:03:05 -0500

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

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/