^recode2^ is a frontend for the @recode@ command. It allows a varlist and can recode into a list of new variables. It is also compatible with the syntax of the SPSS recode command.


^recode2^ varlist [:] rules [ > newvarlist ]

The rules have the same syntax as @recode@. Optionally, elements may be placed in parentheses and commas may be placed within number lists for greater readablility.

If more than one variable is specified in the ^varlist^, then the ^varlist^ must be delimited by a colon ":". If the rules are placed in parentheses then these will act as the delimiter and a colon is optional. delimit the varlist. If no colon or opening parentheses is found then the first word of the ^recode2 > ^ input string is treated as the varname.

Following the rules, a ">" may be placed followed by a list of new variable names into which the variables are to be recoded. The newvarlist must consist of new variables only. Each variable from the input varlist is copied to its counterpart in the newvarlist, then recoded. Note that this implies the "(else=copy)" option of the SPSS recode command.

^recode2^ transforms SPSS keywords into their Stata counterparts, then passes the results to Stata's @recode@ command. The following transformations are applied to the input string:

" to " "-" " into " ">" "lo" "min" "lowest" "min" "hi" "max" "highest" "max" "else" "*" "missing" "." "sysmis" "." " thru " "/" "," " " "(" " " ")" " "


recode2 x 1 3/5=6 2 8=3 *=1 recode2 x (1,3 thru 5=6) (2,8=3) (else=1) recode2 x y z : 1 3/5=6 2 8=3 *=1 > v1-v3 recode2 x y z (1,3/5=6) (2,8=3) (*=1) into v1 to v3 * this will work recode2 x y z (1 3/5=6 2 8=3 *=1 > v1-v3 * this won't, y and z will be treated as rules. recode2 x y z 1 3/5=6 2 8=3 *=1 > v1-v3

-------- John Hendrickx <J.Hendrickx@@mailbox.kun.nl> Nijmegen Business School, University of Nijmegen, The Netherlands