## BY Statement

**BY** * variables ***;**

You can specify a BY statement with PROC DISCRIM to obtain separate
analyses on observations in groups defined by the BY variables.
When a BY statement appears, the procedure expects the
input data set to be sorted in order of the BY variables.

If your input data set is not sorted in ascending
order, use one of the following alternatives:

- Sort the data using the SORT procedure with a similar BY statement.
- Specify the BY statement option NOTSORTED or DESCENDING
in the BY statement for the DISCRIM procedure.
The NOTSORTED option does not
mean that the data are unsorted but rather that
the data are arranged in groups (according to values
of the BY variables) and that these groups are not
necessarily in alphabetical or increasing numeric order.
- Create an index on the BY variables using the DATASETS procedure
(in base SAS software).

For more information on the BY statement, refer to
*SAS Language Reference: Concepts*.
For more information on the DATASETS procedure,
see the discussion in the *SAS Procedures Guide*.
If you specify the TESTDATA= option and the TESTDATA= data
set does not contain any of the BY variables, then the entire
TESTDATA= data set is classified according to the discriminant
functions computed in each BY group in the DATA= data set.

If the TESTDATA= data set contains some but not all of the
BY variables, or if some BY variables do not have the same
type or length in the TESTDATA= data set as in the DATA=
data set, then PROC DISCRIM displays an error message and stops.

If all BY variables appear in the TESTDATA= data set with the
same type and length as in the DATA= data set, then each BY
group in the TESTDATA= data set is classified by the discriminant
function from the corresponding BY group in the DATA= data set.
The BY groups in the TESTDATA= data set must
be in the same order as in the DATA= data set.
If you specify the NOTSORTED option in the BY statement, there must be
exactly the same BY groups in the same order in both data sets.
If you omit the NOTSORTED option, some BY groups
may appear in one data set but not in the other.
If some BY groups appear in the TESTDATA= data set but
not in the DATA= data set, and you request an output test data set
using the TESTOUT= or TESTOUTD= option,
these BY groups are not included in the output data set.

Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.