..- help for ^stack^ (Statalist distribution 19 sep 1997; manual: ^[R] stack^) ..- Stack data - ---------- ^stack^ varlist [^if^ exp] [^in^ range]^,^ { ^i^nto^(^newvars^)^ | ^g^roup^(^#^)^ } [ ^clear^ ^wi^de ] Description - ----------- ^stack^ stacks variables in varlist vertically. Consider . ^stack a b c d e f, into(g h)^ This would create a new dataset containing g h ^_stack^ --------------------------- a b 1 (_N observations) c d 2 (_N observations) e f 3 (_N observations) The resulting dataset would have 3*_N observations. The first _N observations would have all the data from variables a and b, the second _N observation all the data from c and d, and the third _N observations all the data from e and f. ^stack^ also creates a new variable, ^_stack^, identifying the groups. As another example, . ^stack a b c d e f, into(g h i)^ would create a new dataset containing g h i ^_stack^ --------------------------- a b c 1 (_N observations) d e f 2 (_N observations) The number of variables specified by ^into()^ determine the number of groups formed. ^into()^ may be specified with variable ranges, such as . ^stack a b c d e f, into(v1-v3)^ as, of course, may the varlist . ^stack a-f, into(v1-v3)^ The new variables formed may have the existing variables' names; . ^stack a b c d e f, into(a b)^ and . ^stack a b c d e f, into(a b c)^ make perfect sense. When you want the new variables to have the same names as the variables in the first group, rather than specifying ^into()^, you may specify ^group()^. Equivalent to the above are . ^stack a b c d e f, group(2)^ and . ^stack a b c d e f, group(3)^ For instance, the latter command creates a b ^_stack^ --------------------------- a b 1 (_N observations) c d 2 (_N observations) e f 3 (_N observations) Options - ------- ^into(^newvars^)^ and ^group(^#^)^ are alternatives and you must specify one or the other, but not both. ^into(^newvars^)^ specifies the the names of the new variables to be created. The implied number of groups is then v/n, where v is the number of varlist variables and n the number of ^into()^ variables. For instance, . ^stack a b c d e f, into(v1 v2 v3)^ implies two groups: (a b c) and (d e f). ^group(^#^)^ specifies the number of groups and specifies that the new variables are to be named according to the first # variables in varlist. For instance, . ^stack a b c d e f, group(2)^ specifies that there are two groups and the new variables are to be called a, b, and c. ^clear^ indicates your understanding that the data in memory will be lost; if not specified, you will be asked to confirm your intentions. ^wide^ includes any of the original variables in varlist that are not specified in newvars in the resulting dataset. Examples - -------- See ^[R] stack^. Here, we will give one mechanical example. . ^list^ a b c d 1. 1 2 3 4 2. 5 6 7 8 . ^stack a b c d, into(e f) clear^ . ^list^ e f _stack 1. 1 2 1 2. 5 6 1 3. 3 4 2 4. 7 8 2 That is, the new variable ^e^ is formed by stacking ^a^ and ^c^, while the new variable ^f^ is formed by stacking ^b^ and ^d^. ^_stack^ is automatically created and set equal to 1 for the first (^a^,^b^) group and 2 for the second (^c^,^d^) group. Also see - -------- Manual: ^[R] stack^ On-line: help for @reshape@, @xpose@