Duplicate observations by variable ----------------------------------
^expandby^ # [^if^ exp] [^in^ range] ^, by(^byvar^)^ [ ^miss^ing ^sort^by^(^sortvar^) usesortmiss first g^enerate^(^newvar^)^ ]
Description -----------
^expandby^ replaces one observation in each group of the current dataset with # copies of the observation. # should be an integer which is 2 or more. Groups are defined by the variable specified in ^by( )^.
Remarks -------
By default the last observation in each group is copied. This will in general be arbitrarily selected unless the ^sortby( )^ option is specified. For example, ^sortby(time)^ means that the last observation in each group according to ^time^ will be copied. By default missing values of the by variable and of the sorting variable are ignored. These defaults can be overridden.
Options -------
^by(^byvar^)^ specifies a variable defining groups and is a required option. If byvar takes on values 1 and 2, two groups are defined with those values.
^miss^ing specifies that missing values of byvar are also used to define a group. By default observations for which byvar is missing are ignored.
^sortby(^sortvar^)^ specifies that observations should be sorted by sortvar within byvar. By default the observation with the last (highest) non-missing value of sortvar will be selected within each group of byvar.
^first^ specifies that the observation with the first (lowest) value of sortvar should be selected within each group of byvar.
^usesortmiss^ specifies that observations of sortvar which are missing should be used in sorting. By default such observations are ignored.
^generate(^newvar^)^ specifies a new variable to be generated which marks newly created observations. newvar is 1 for such observations and 0 otherwise. This allows subsequent commands such as ^edit^ or ^list^ to be issued with the condition ^if^ newvar.
Examples --------
Suppose we have records on individuals with identifiers ^id^ for distinct times ^time^.
The latest record for each individual can be copied by
^. expandby 2 , by(id) sort(time) g(new)^
With these options, any observations for which ^id^ is missing or for which ^time^ is missing are ignored, and will not be copied.
The resulting observations can be edited by
^. edit if new^ Author ------
Nicholas J. Cox, University of Durham, U.K. n.j.cox@@durham.ac.uk Acknowledgments ---------------
John Moran suggested this problem.
Also see --------
Manual: [R] expand On-line: help for @expand@