### 12.2 AUTORECODE

         AUTORECODE VARIABLES=src_vars INTO dest_vars
                 [ /DESCENDING ]
                 [ /PRINT ]
                 [ /GROUP ]
                 [ /BLANK = {VALID, MISSING} ]

The `AUTORECODE` procedure considers the n values that a variable takes on and maps them onto values 1...n on a new numeric variable.

Subcommand `VARIABLES` is the only required subcommand and must come first. Specify `VARIABLES`, an equals sign (‘`=`’), a list of source variables, `INTO`, and a list of target variables. There must the same number of source and target variables. The target variables must not already exist.

By default, increasing values of a source variable (for a string, this is based on character code comparisons) are recoded to increasing values of its target variable. To cause increasing values of a source variable to be recoded to decreasing values of its target variable (n down to 1), specify `DESCENDING`.

`PRINT` is currently ignored.

The `GROUP` subcommand is relevant only if more than one variable is to be recoded. It causes a single mapping between source and target values to be used, instead of one map per variable.

If `/BLANK=MISSING` is given, then string variables which contain only whitespace are recoded as SYSMIS. If `/BLANK=VALID` is given then they will be allocated a value like any other. `/BLANK` is not relevant to numeric values. `/BLANK=VALID` is the default.

`AUTORECODE` is a procedure. It causes the data to be read.