stattutorials.com
Statistics Tutorials
for SAS, SPSS, WINKS, Excel


Statistical
Video Training
DVDs

Against All Odds Videos
Against All
Odds VIDEOS

Teaching Videos from Annenberg/PBS.
A video instructional series on statistics for college and high school classrooms.
Special Pricing $20 off!
Click here for Against All Odds info


WINKS Statistical Software
Affordable. Reliable. Relevant.
www.texasoft.com
 


KWIKSTAT

New -- Kwikstat
Data Generator

Generate data sets with continuous, categorical, grouped and correlated data. Great for creating data sets for examples and for quality assurance testing. Data sets are created in standard .CSV format so they can be opened in most statistical programs such as SAS, SPSS, WINKS and into spreadsheet programs such as Microsoft Excel. More info. Order now.

 

SAS Tutorial Menu

Main Tutorial Menu

Numbers

PROC MEANS - Output statistics

See www.stattutorials.com/SASDATA for files mentioned in this tutorial © TexaSoft, 2010

Using PROC MEANS to output statistics

Suppose you have a data set and you want to add a column containing a z-statistic based on the mean and standard deviation of a variable. Here is one way to do that. The following data set contains weights of 12 children. You want to add a column of the difference of the scores from the mean based on a the information in the WEIGHT variable. For good measure also calculate the z-score.

DATA WT;
       INPUT WEIGHT;
       DATALINES;
       64
       71
       53
       67
       55
       58
       77
       57
       56
       51
       76
       68
       ;
       PROC MEANS NOPRINT DATA=WT;VAR WEIGHT;OUTPUT OUT=WTMEANS
       MEAN=WTMEAN STDDEV=WTSD;
       RUN;
       DATA WTDIFF;SET WT;
       IF _N_=1 THEN SET WTMEANS;
       DIFF=WEIGHT-WTMEAN;
       Z=DIFF/WTSD; * CREATES STANDARDIZED SCORE (Z-SCORE);
       RUN;
       ODS RTF;
       PROC PRINT DATA= WTDIFF;VAR WEIGHT DIFF Z;
       RUN;
     ODS RTF CLOSE;

The statement

OUTPUT OUT=WTMEANS MEAN=WTMEAN STDDEV=WTSD;

Creates a SAS data file containing a single record with variables WTMEAN and WTSD (and some other system variables.) You can then use that information to calculate the desired values, as is done in the code:

DATA WTDIFF;SET WT;
       IF _N_=1 THEN SET WTMEANS;
       DIFF=WEIGHT-WTMEAN;
       Z=DIFF/WTSD; * CREATES STANDARDIZED SCORE (Z-SCORE);
     RUN;

The first SET statement (SET WT) reads in the entire WT data set. The statement

IF _N_=1 THEN SET WTMEANS;

Reads in the first (and only) record from the WTMEANS data set and merges the WTDIFF and WTSD (and a couple of other system variables) into the new WTDIFF data set, allowing you to do the calculations to come up with the DIFF and Z values.

The resulting data set contains the following information

Obs

WEIGHT

DIFF

Z

1
64
1.25
0.13910
2
71
8.25
0.91808
3
53
-9.75
-1.08501
4
67
4.25
0.47295
5
55
-7.75
-0.86244
6
58
-4.75
-0.52859
7
77
14.25
1.58578
8
57
-5.75
-0.63988
9
56
-6.75
-0.75116
10
51
-11.75
-1.30757
11
76
13.25
1.47450
12
68
5.25
0.58424

NOTE: You could also get standardized values using PROC STANDARD. 

PROC STANDARD DATA=WT
       MEAN=0 STD=1 OUT=ZSCORES;
       VAR WEIGHT;
       RUN;
       PROC PRINT DATA=ZSCORES;
     RUN;



NOTE: It is also possible to capture statistics from PROC MEANS output tables using ODS. See ODS tutorials for more info.

 End of Tutorial