Skip to Main Content

How do I standardize variables in SAS? | SAS FAQ

To standardize variables in SAS, you can use
proc standard. The example shown below creates a data file cars and
then uses proc standard to standardize weight and price.

 DATA cars;
  INPUT mpg weight price ;
DATALINES;
22 2930 4099
17 3350 4749
22 2640 3799
20 3250 4816
15 4080 7827
;
RUN;
 
PROC STANDARD DATA=cars MEAN=0 STD=1 OUT=zcars;
  VAR weight price ;
RUN;
 
PROC MEANS DATA=zcars;
RUN;

 

The mean=0 and std=1
options are used to tell SAS what you want the mean and standard deviation to be for the
variables named on the var statement. Of course, a mean of 0 and
standard deviation of 1
indicate that you want to standardize the variables. The out=zcars option
states that the output file with the standardized variables will be called zcars.

The proc means on zcars
is used to verify that the standardization was performed properly. The output below
confirms that the variables have been properly standardized.

Variable  N          Mean       Std Dev       Minimum       Maximum
-------------------------------------------------------------------
MPG       5    19.2000000     3.1144823    15.0000000    22.0000000
WEIGHT    5  -4.44089E-17     1.0000000    -1.1262551     1.5324455
PRICE     5  -4.44089E-17     1.0000000    -0.7835850     1.7233892
-------------------------------------------------------------------

Often times you would like to have both the standardized
variables and the unstandardized variables in the same data file. The example below shows
how you can do that. By making extra copies of the variables zweight and
zprice,
we can standardize those variables and then have weight and price
as the unchanged values.

 DATA cars2;
  SET cars;
  zweight = weight;
  zprice  = price;
RUN;
 
PROC STANDARD DATA=cars2 MEAN=0 STD=1 OUT=zcars;
  VAR zweight zprice ;
RUN;
 
PROC MEANS DATA=zcars;
RUN;

 

As before, we use proc means to confirm
that the variables are properly standardized.

Variable  N          Mean       Std Dev       Minimum       Maximum
-------------------------------------------------------------------
MPG       5    19.2000000     3.1144823    15.0000000    22.0000000
WEIGHT    5       3250.00   541.6179465       2640.00       4080.00
PRICE     5       5058.00       1606.72       3799.00       7827.00
ZWEIGHT   5  -4.44089E-17     1.0000000    -1.1262551     1.5324455
ZPRICE    5  -4.44089E-17     1.0000000    -0.7835850     1.7233892
-------------------------------------------------------------------

As we see in the output above, zweight
and zprice have been standardized, and weight and price
remain unchanged.