0% found this document useful (0 votes)
87 views10 pages

Proe Summary: A Powerful Exploratory Data Analysis Tool: Systems Seminar Consultants, Kalamazoo, MI

This document provides an overview of PROC SUMMARY and how it can be used to explore and summarize data. PROC SUMMARY allows classification of data using CLASS variables and analysis of numeric variables using statistics like mean, min, max, etc. It produces an output dataset that includes a _TYPE_ variable indicating overall, subgroup, and detailed summary levels. The _TYPE_ values can be used to filter the output dataset and create reports with different aggregation levels, or in a DATA step to calculate percentages. Both explicit and implicit OUTPUT statements are supported.

Uploaded by

adityaacharya44
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
87 views10 pages

Proe Summary: A Powerful Exploratory Data Analysis Tool: Systems Seminar Consultants, Kalamazoo, MI

This document provides an overview of PROC SUMMARY and how it can be used to explore and summarize data. PROC SUMMARY allows classification of data using CLASS variables and analysis of numeric variables using statistics like mean, min, max, etc. It produces an output dataset that includes a _TYPE_ variable indicating overall, subgroup, and detailed summary levels. The _TYPE_ values can be used to filter the output dataset and create reports with different aggregation levels, or in a DATA step to calculate percentages. Both explicit and implicit OUTPUT statements are supported.

Uploaded by

adityaacharya44
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Beginning Tutorials

PRoe SUMMARY: A POWERFUL EXPLORATORY DATA ANALYSIS TOOL


Kim L Kolbe Ritzow
Systems Seminar Consultants, Kalamazoo, MI

Abstract Available options on the OUTPUT OUT=:


Starting with Version 6 of SASe Software, PROC
SUMMARY and PROC MEANS are virtually identical N RANGE USS STDERR
except for two differences. One, PROC MEANS prints NMISS CSS CV SUM
a report by default, whereas PROC SUMMARY does PRT MIN SUMWGT T
not. And two, PROC SUMMARY requires the VAR SKEWNESS MAX
OUTPUT statement, whereas MEANS does not. MEAN STD KURTOSIS

These procedures allow us to explore our data not Aggregating Data with PROC SUMMARY
only in terms of counts and distributions, but also The CLASS statement in PROC SUMMARY names the
statistically. Both procedures now support the CLASS character or numeric variables in which the data will
statement (this is new to PROC MEANS starting with be CLASSified upon. The variables listed on the
Version 6). The CLASS statement acts much like the CLASS statement should be categorical variables, that
BY, only it does not require sorting and in most cases is, they should have a few number of discrete values.
is more effiCient than the BY statement. The VAR statement on the other hand, names the
numeric variables which will be analyzed. The
For the purpose of this paper, the examples will use OUTPUT OUT = statement names the output SAS data
PROC SUMMARY. Keep in mind, however, PROC set. It also defines which statistics will be used with
MEANS could have been used instead and it would which variables and what they will be called on the
produce the exact same results. output SAS data set.

Background PROC SUMMARY DATA=MKTDATA;


The syntax of PROC SUMMARY is quite extensive. CLASS STNORE STRCTYP;
The following is a partial list of some of the statements VAR FRCSLVL MKTVL;
and options available on PROC SUMMARY: OUTPUT OUT=SUMDS
SUM (MKTVL) =TOTMKTVL
PROC SUMMARY DATA=SASdataset options; MEAN(FRCSLVL) = AVGFORCL
MIN(MKTVL) = MINMKTVL
Options (partial list): MAX(MKTVL) = MAXMKTVL;
RUN;
MISSING - Treat missing values as a
valid subgroup value PROC PRINT DATA=SUMDS NOOeS;
NWAY - Calculate only highest level TmE 'RESULT OF PROC SUMMARY';
of interaction RUN;
DESCENDING - Arrange lowest summary (See Output #1 tor results)
levels first (by default they
are arranged ascending) As variables are added to the CLASS statement, the
ORDER= - Specify sort order of number of resulting TYPE values will grow
CLASS variables exponentially. --

Optional statements (partial list): How are the TYPE Values Useful?
CLASS variable(s); The TYPE variableis a part of the output SAS data
VAR variable(s); set built (meaning if you did a PROC CONTENTS you
BY variable(s); would see it on there). This also means that you can
WHERE where condition(s); query against this variable's value and use it to create
OUTPUT OUT= SASdataset options=variable(s); different reports, each of which contain different

198
Beginning Tutorials

:information, with different levels of detail and DATA PERCENT;


summarization. SET SUMDS(KEEP= TOTMKTVL _TYPE_
STNORE STRCTYP
Interpreting _TYPE_values: WHERE=LTYPE_IN (0,3)));
IF TYPE = 0 THEN
Represents the entire data DO; -
-TYPE- =0 set (grand total- company GTOTMKT=TOTMKTV~
overall) RETAIN GTOTMKT;
Represents STRCTYP
-TYPE- =1 (across all STNOREs)
DELETE;
END;
Represents STNORE (across
-TYPE- =2 all STRCTYPs)
ELSE
PCTMKT=(TOTMKTVL/GTOTMKT) * 100;
TYPE =3 Represents STRCTYPs within DROP TYPE;
- - STNOREs RUN; - -

After a PROC SUMMARY, a series of PROC PRINTs PROC PRINT DATA=PERCENT;


could be coded to select off different TYPE values T1TLE1 'RESULT OF USING TYPE VALUES';
and to create several different reportS each with a T1TLE2 'IN THE DATA STEP;; -
different level of information: RUN;
(See Output #3 for results)
PROC PRINT DATA=SUMDS(DROP= STNORE
STRCTYP fREQJ; Figuring Out TYPE Values
WHERE TYPE = 0; There are three waysto see your _TYPE_values:
TITLE1"CEO'S-REPORT";
TITLE2 "COMPANY OVERALL"; * PROC PRINT the resulting output SAS data
VAR TOTMKTVL AVGFORCL MINMKTVL set (if you have several CLASS variables this
MAXMKTVL; may be A LOT of output)
RUN;
* Manipulate the data to print only the first
PROC PRINT DATA=SUMDS(DROP= STRCTYP value of each TYPE variable, which may be
_FREQJ; enough to figure oUt which TYPE values
WHERE TYPE = 2; you need (be careful of doing this if you have
T1TLE1 "REGIONAL MANAGER'S REPORT"; used the MISSING option on the PROC
TITLE2 ·STATE TOTALS"; SUMMARY statement)
VAR STNORE TOTMKTVL AVGFORCL
MINMKTVL MAXMKTVL; * Reference the SAS manual for the formula
RUN; used in calculating the _TYPE_values

PROC PRINT DATA=SUMDS(DROP= _FREQJ; DATA FIRSTONE;


WHERE TYPE = 3; SETSUMDS;
T1TLE1 "DETAILED ANALYSIS REPORT"; BY TYPE;
VARSTNORESTRCTYPTOTMKTVL IF FIRST. TYPE ;
AVGFORCL MINMKTVL MAXMKTVL; RUN; - -
RUN;
(See Output #2 for results) PROC PRINT DATA=FIRSTONE;
T1TLE1 'PRINTING ONLY THE FIRST';
Using TYPE Values In a DATA Step T1TLE2 'OCCURRENCE OF EACH TYPE ';
TYPE- values are not only useful for querying T1TLE3 'VALUE'; --
against-in a PROC, but can also be used in a DATA RUN;
step to help create percentages. (See Output #4 for results)

199
Beginning Tutorials

An Implicit OUTPUT Statement PROC PRINT DATA=SUMDS;


It is possible to code an implicit OUTPUT statement in TlTLE1 'WHEN AN IMPLICIT OUTPUT';
PROC SUMMARY. The explicit OUTPUT statement TlTLE2 'STATEMENT IS USEFUL';
Oike the style which we have been seeing) is new to RUN;
PROC MEANS starting with Version 6. In older (See Output #6 for results)
versions of SAS, PROC MEANS only supported the
implicit OUTPUT statement. PROC SUMMARY has In this example SAS would use the existing variable
always supported both styles. Of the two styles, the names and replace their value to contain the value of
explicit style is preferred because it reduces the the statistic being defined. .
chance of getting bad data unintentionally:
With this method could you specify more than one
PROC SUMMARY DATA=MKTDATA; statistic without providing new variable names? No,
CLASS STNORE STRCTYP; because you are trying to use a single variable
VAR FRCSLVL MKTVL; defined multiple ways.
OUTPUT OUT=SUMDS
SUM = TOTFORCL TOTMKTVL PROC SUMMARY Without a VAR Statement
MEAN =AVGFORCL; It is possible to code a PROC SUMMARY without a
RUN; VAR statement. In which case it simply counts the
number of occurrences of your CLASS variables'
PROC PRINT DATA=SUMDSj values. This gives PROC SUMMARY the same
TITLE 'RESULT OF IMPLICIT OUTPUr; functionality that we find in PROC FREQ.
RUN;
(See Output #5 for results) PROC SUMMARY DATA=MKTDATA;
CLASS STNORE STRCTYP;
How does SAS know the SUM of FRCSLVL is to be OUTPUT OUT=SUMDS;
called TOTFORCL and not TOTMKTVL? It has to do RUN;
with the order of the VAR statement. It takes the SUM
of the first variable specified and calls it TOTFORCL PROC PRINT DATA=SUMDS;
and the SUM of the second variable specified and TITLE 'RESULT WITHOUT USING A VAR';
calls it TOTMKTVL Do you see the problem with it? RUN;
If you don't know that the order is important (that is, (See Output #7 for results)
if you reverse the order of the variables specified on
the VAR statement or the order of the variables Since no VAR statement is being used any statistics
specified on the OUTPUT statement), you could have specified on the OUTPUT statement will have no effect
a variable called one thing, but mean an entirely upon the OUTPUT SAS data set being built. Without
different thing and you would NEVER KNOW IT! a VAR statement all PROC SUMMARY does is
DON'T USE THIS METHOD!! It leads more often than COUNT.
not to incorrect results.
PROC SUMMARY Without a CLASS Statement
Also notice with this method that its difficult to define Similarly, PROC SUMMARY does not have to have a
the average of MKTVL without defining the average of CLASS statement. PROC SUMMARY must have either
FRCSLVL a CLASS or a VAR statement, but it does not need to
contain both, as we have seen. When no CLASS
The ONLY time the use of the implicit OUTPUT is statement is provided, only a TYPE =0 record is
useful is when you want to calculate the same statistic produced; no other levels of interaction are created.
for all the variables listed on the VAR statement:
PROC SUMMARY DATA=MKTDATA;
PROC SUMMARY DATA=MKTDATA; VAR FRCSLVL MKTVL;
CLASS STNORE STRCTYP; OUTPUT OUT=SUMDS
VAR FRCSLVL MKTVL; SUM(FRCSLVL) =TOTFORCL
OUTPUT OUT=SUMDS SUM=; SUM(MKTVL) =TOTMKTVL
RUN; MEAN(FRCSLVL)=AVGFORCL; RUN;

200
Beginning Tutorials

PROC PRINT DATA=SUMDS; Also notice that the NWAY option was added to the
TITLE 'WITHOUT USING THE CLASS'; PROe SUMMARY statement. The NWAY option
RUN; eliminates intermediate levels of summarization- in this
(See Output #8 for results) case we only got the _TYPE_ =3 records.

Because a VAR statement is being used different You can format CLASS variable regardless if the
statistics c,!n be specified on the OUTPUT SAS data NWAY option is being used or not.
set.
Creating Flat Files
Formatting CLASS Variables Some times after the data has been aggregated you
User-defined formats can be used when CLASSifying may want to take the result of that summarization and
data. put it into a flat file so it could be downloaded to
another platform and imported in to another software
PROC FORMAT; product. It is very easy to take the results of PROe
VALUE $ STNOFMT SUMMARY and create flat file if you know what you
'AK','AZ','CA','CO','NM', are doing:
'NV','OR','WA' = 'WEST'
'AL','FL','GA','KY','MO', PROC SUMMARY DATA=MKTDATA NWAY;
'OK','SC','TN','VA','WV' ='SOUTH' CLASS STNORE STRCTYP;
'CT','DC','DE','MA','MD', VAR FRCSLVL MKTVL;
'NC','NH','NJ','NY','PA', OUTPUT OUT= SUMDS
'RI' ='EAST SUM(MKlVL) =TOTMKTVL
'IL', 'IN','KS','MI' ,'MN', MEAN(FRCSLVL) = AVGFORCL
'NE','OH', 'WI' = 'MIDWEST; MIN(MKTVL) =MINMKlVL
RUN; MAX(MKTVL) =MAXMKTVL;
RUN;
PROC SUMMARY DATA=MKTDATA NWAY;
CLASS STNORE STRCTYP; FILENAME OUTFILE 'path-name';
FORMAT STNORE $STNOFMT.;
VAR FRCSLVL MKlVL; DATA NULL;
OUTPUT OUT=SUMDS SET SUMDS(DROP= _TYPE__FREQj;
SUM(MKTVL) =TOTMKTVL FILE OUTFILE NOTITLES;
MEAN(FRCSLVL) =AVGFORCL PUT @1 STRCTYP $2. @5 STNORE $2.
MIN (MKTVL) =MINMKlVL @10TOTMKTVL 8. @20AVGFORCL 10.
MAX(MKTVL) = MAXMKlVL; RUN; @35 MINMKTVL 7. @45 MAXMKTVL 10.;
(See Output #10 for results)
PROC PRINT DATA=SUMDS;
TITLE 'FORMATTING A CLASS VARIABLE'; Always use DATA NULL when creating flat files.
RUN; This prevents a SAS data set from being built. The
(See Output #9 for results) only reason to ever build a SAS data set is so that
you can pass it on to another DATA or PROe step for
You want to be careful of formatting CLASS variables further processing. You usually buDd a flat file as a
if you are going to tum around later on and check for last step within your program, so there is no need to
the formatted value (i.e. WHERE STNORE='EAST';), build a SAS data set. Remember, DATA; does not
because remember that formats DO NOT change the prevent a data set from being built, SAS builds one for
value of the variable, they simply change their us, but it chooses the name. The ONLY way to
appearance. It may be better to create a variable in prevent a data set from being built is by saying DATA
a DATA step prior to PROC SUMMARY that physically NULL.
contains the formatted value by using the PUT
- -
function (FSTNORE=PUT(STNORE,$STNOFMT.);) and Both SAS-defined and user-defined formats can be
use that on your CLASS statement instead. used on the PUT statement.

201
Beginning Tutorials

The example above will create a fixed column. blank Another way of doing it would be to assign constants
delimited fde to the location specified on the rather than literals:
FILENAME statement (depending on your platform
you could also reference the name specified on the DATA NUU:
FILE statement in JCL. ASSIGN statements. SET SUMDS(DROP= _TYPE__FREQj:
ALLOCates. etc.). RETAIN DQUOTE'" COMMA ',';
FILE OUTFILE NOTITLES:
Creating a Flat File to Import Into Lotus PUT DQUOTE STRCTYP
Character literals can be specified on the PUT DQUOTE COMMA DQUOTE STNORE
statement. which is useful in creating a delimited file DQUOTE COMMA DQUOTE TOTMKTVL
that Lotus can import. This technique can be used to DQUOTE COMMA DQUOTE AVGFORCL
create flat fHes that are delimited by characters other DQUOTE COMMA OQUOTE MINMKTVL
than blanks. Check the reference manual of the DQUOTE COMMA DQUOTE MAXMKTVL
product you wHI be importing Into under "Importing DQUOTE:RUN:
Files· to determine what type of delimited file the (See Output #13 for results)
particular product can read most easily. Use that
delimiter in place of the delimiters used in the SAS PUTs a blank after character constants as well,
example below. so the decrernental pointer used In the previous
example will need to be used again:
PROC SUMMARY DATA=MKTDATA NWAY;
CLASS STNORE STRCTYP; DATA NULL:
VAR FRCSlVl MKTVL; SET SUMDS(DROP= _TYPE__FREQj:
OUTPUT OUT= SUMDS RETAIN DQUOTE '"' COMMA ',':
SUM(MKTVl) =TOTMKTVl FILE OUTFILE NOTITLES;
MEAN (FRCSLVL) =AVGFORCl PUT DQUOTE +(-1) STRCTYP +(-1)
MIN(MKTVL) =MINMKTVl DQUOTE +(-1) COMMA +(-1)
MAX(MKTVL) = MAXMKTVL; DQUOTE +(-1) STNORE +(-1)
RUN; . DQUOTE +(-1) COMMA +(-1)
FILENAME OUTFILE 'path-name'; DQUOTE +(-1) TOTMKTVL +(-1)
DQUOTE +(-1) COMMA +(-1)
DATA NULL: DQUOTE +(-1) AVGFORCL +(-1)
SET SUMDS(DROP= _TYPE_fREQ.J: DQUOTE +(-1) COMMA +(-1)
FILE OUTFILE NOTITLES: DQUOTE +(-1) MINMKTVL +(-1)
PUT ••, STRCTYP ..... STNORE DQUOTE +(-1) COMMA +(-1)
...... TOTMKTVl··.. • AVGFORCL DQUOTE +(-1) MAXMKTVL +(-1)
,
,. ot
MINMKTVL ,. ,'" MAXMKTVL '.'; DQUOTE;
RUN: RUN:
(See Output #11 for results) (See Output #14 for results)

Note that SAS writes out a blank after PUTting out the In Summary
value of a variable. We can solve this by "tricking" As we have seen through the course of this paper,
SAS into thinking It has a decremental pointer: PROC SUMMARY is a very powerful exploratory data
analysis tool. It allows us to explore our data both
DATA NUU; statistically as well as in terms of how our data values
SET SUMDS(DROP= _TYPE __FREQj: are distributed in a single PROC step.
FILE OUTFILE NOTITLES:
PUT ••• STRCTYP +(-1) '",.. STNORE +(-1) We also have seen how we can post-process the
"',n' TOTMKTVL +(-1) ''',.' AVGFORCL +(-1) output SAS data set from PROC SUMMARY in DATA
''',.. MINMKTVL +(-1) '.,.' MAXMKTVL +(-1) or PROC steps to produce various types of reports
.... ;RUN; and flat files which can then be downloaded and
(See Output #12 for results) imported into any software product.

202
Beginning Tutorials

Trademark Notice
SAS is a registered trademark of the SAS Institute
Inc., Cary, NC, USA and other countries.

Any questions or comments regarding the paper may


be directed to the author:

Kim L. Kolbe Ritzow


Systems Seminar Consultants
Kalamazoo Office
927 Lakeway Drive
Kalamazoo, MI 49001
Phone:(616) 345-6636
Fax: (616) 345-5793

203
Beginning Tutorials

Partial Output:
RESULT OF PROC SUMMARY
STNORE STRCTYP _TYPE_
-FREQ_ TOTMKTVL AVGFORCL MINMKTVL MAXMKTVL
0 3034 371473153 109400.72 10000 3300002
NA 1 108 11824700 97274.31 27000 350000
ND 1 2109 268794599 113624.23 15000 3300002
YA 1 62 6089850 89167.13 25500 235000
••••••••••.•••••••••••••••••••••••••••••••• ETC •••••••••••••••••••••••••••••••••••••
AK 2 1 46000 36800.00 46000 46000
AL 2 17 1081600 56213.00 39000 137500
AZ 2 40 3905000 89237.50 35000 358000
•••••••••.••••••••••••••••••••••••••••••••• ETC •.•.••••••••.••••••••••••••••••••••••
AK NA 3 1 46000 36800.00 46000 46000
AL NA 3 1 42000 35000.00 42000 42000
AL NO 3 9 548000 56435.67 39000 135000
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • . .• ETC

CEO'S REPORT- COMPANY OVERALL


CBS TOTMKTVL AVGFORCL MINMKTVL MAXMKTVL
371473153 109400.72 10000 3300002

OUtput fI2.

Partial Output:
REGIONAL MANAGER'S REPORT- STATE TOTALS
OBS STNORE TOTMKTVL AVGFORCL MINMKTVL MAXMKTVL
9 AK 46000 36800.00 46000 46000
10 AL 1081600 56213.00 39000 137500
11 AZ 3905000 89237.50 35000 358000
12 CA 116594652 1714BB.64 25000 3300002
13 CO 4858660 98243.09 30000 319000
•••••••••••••••••••••••••• ETC •••••••••••••••••••••••••••.••••.•
OUtput fI2.

204
Beginning Tutorials

Partial Output:
DETAILED ANALYSIS REPORT

OBS STNORE STRCTYP TOTMKTVL AVGFORCL MINMKTVL MAXMKTVL

46 AK NA 46000 36800.00 46000 46000


47 AL NA 42000 35000.00 42000 42000
48 AL NO 548000 56435.67 39000 135000
49 AL YA 52000 42000.00 52000 52000
•••••••••••••••••••••••••• ETC ••••••••••••••••••••••••••••••••••

OUtput tIZ

RESULT OF USING TYPE VALUES


IN THE DATA STEP

OSS STNORE STRCTYP TOTMKTVL GTOTMKT PCTMKT

1 AK NA 46000 371473153 0.0124


2 AL NA 42000 371473153 0.0113
3 AL ND 548000 371473153 0.1475
4 AL YA 52000 371473153 0.0140
5 AL YD 394600 371473153 0.1062
• • • • • • • • • • • • • • • • • • • • • •• ETC •••••••••••••••••••••••••••••••

OUtput iI.5

PRINTING ONLY THE FIRST


OCCURRENCE OF EACH _TYPE_
VALUE

OBS STNORE STRCTYP _ TYPE_


-FREQ_ TOTMKTVL AVGFORCL MINMKTVL MAXMKTVL

1 0 3034 371473153 109400.72 10000 3300002


2 NA 1 108 11824700 97274.31 27000 350000
3 AK 2 1 46000 36800.00 46000 46000
4 AK NA 3 1 46000 36800.00 46000 46000

Partial Output:
RESULT OF IMPLICIT OUTPUT STATEMENT

OBS STNORE TOTFORCL TOTMKTVL AVGFORCL

1 0 3034 331046583 371473153 109400.72


2 NA 1 108 10505625 11824700 97274.31
3 NO 1 2109 239633502 268794599 113624.23
4 YA 1 62 5528362 6089850 89167.13
•••••••••••••••••••••••••••••••••••••••••••• ETC •••••••••••••••••••••••••••••••••
9 AK 2 1 36800 46000 36800. 00
10 AL 2 17 955621 1081600 56213.00
11 A2 2 40 3569500 3905000 89237.50
• • • • • • • • • • • • • • • • • •• ••• • ••• • • • • • • • • • • • • • • •• •• ETC •••••••••••••••••••••••••••••••••
46 AK NA 3 1 36800 46000 36800.00
47 AL NA 3 1 35000 42000 35000.00
48 AL NO 3 9 507921 548000 56435.67
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •• ETC •••••••••••••••••••••••••••••••••

OUtput IS

205
Beginning Tutorials

Partial Output:
WHEN AN IMPLICIT OUTPUT
STATEMENT IS USEFUL

OBS STNORE FRCSLVL MKTVL

1 0 3034 331046583.0 371473153.0


2 NA 1 108 10505625.00 11824700.00
3 ND 1 2109 239633502.0 268794599.0
4 YA 1 62 5528362.00 6089850.00
••••••••••••••••••••••••••••••• ETC ••••••••••••••••••••••••••••••••••••••
9 AK 2 1 36800.00 46000.00
10 AL 2 17 955621.00 1081600.00
11 AZ 2 40 3569500.00 3905000.00
••••••••••••••••••••••••••••••• ETC ••••••••••••••••••••••••••••••••••••••
46 AK NA 3 1 36800.00 46000.00
47 AL NA 3 1 35000.00 42000.00
48 AL ND 3 9 507921.00 548000.00
• • • • • • • • •• • • • • • • • • • • • • • • • • • • • •• ETC ••••••••••••••••••••••••••••••••••••••

OUtput 16

Partial Output:
RESULT WITHOUT USING A VAR

OBS STNORE STRCTYP _TYPE_ _FREQ_

1 0 ~~
2 NA 1 108
3 NO 1 2109
4 YA 1 62
••••••••••••••••••• ETC ••••••••••••••••••
9 AK 2 1
10 AL 2 17
11 AZ 2 40
• • • • • • • • • • • • • • • • • •• ETC ••••••••••••••••••
46 AK NA 3 1
47 AL NA 3 1
48 AL NO 3 9
••••••••••••••••••• ETC ••••••••••••••••••

OUtput ff1

RESULT WITHOUT USING THE CLASS

TOTFORCL TOTMICTVL AVGFORCL

o 3144 331046583 371473153 109400.72

OUtput 18

206
Beginning Tutorials

Partial Output:
FORMATTING A CLASS VARIABLE
OBS STNORE TOTMKTVL AVGFORCL MINMKTVL MAXMKTVL
1 WEST NA 3 25 3808000 139096.00 44500 350000
2 WEST NO 3 626 110375052 157244.74 26000 3300002
3 WEST YA 3 19 2440250 120378.95 57250 235000
•••••••••••••••.•..••••••••••••••••••••••••••••• ETC ••••••••••••••••••••••••••••••••.•••••••
output fJ9

Partial Listing of the Flat File Created:


NA AK 46000 36800 46000
NA AL 42000 35000 42000
NO AL 548000 56436 39000 135000
• • • . • • • • . • . . • • • . • • • •• ETC ••••••••••••••••••••••••••••
outplt #10

Partial Listing of the Flat File created:


"NA ","AK ","46000 ","36800 ","46000 ","46000 II
"NA ","AL ","42000 ","35000 ","42000 ","42000 "
"NO ","AL ","548000 ","56435.666667 ","39000 ","135000 II
• • • • • • . • • . • • • • • • • •• • • •• ETC •••••••••••••••••••••••••••••

Partial Listing of the Flat File Created:


"NA","AK", "46000","36800", "46000","46000"
"NA","AL","42000","35000", "42000","42000"
"NO","AL","548000" ,"56435.666667","39000", "135000"
• • • • . • • • • • • • • • •• .• ETC •••••.•••••••••••••••••••••
outplt #12

Partial Listing of the Flat File Created:


" NA " , " AK " , " 46000 " , " 36800 " , " 46000 " , " 46000 "
" NA " , " AL II , " 42000 " , " 35000 " , " 42000 " , " 42000 "
" ND " , " AL " , " 548000 " , n 56435.666667 " , " 39000 " , " 135000 "
•••••••.••••.•••••••••••••••••• ETC •••••••••.••••••••••••••••••••••••••••
outplt #13

Partial Listing of the Flat File Created:


"NA" ,"AI(" ,"46000" ,"36800" ,"46000" ,"46000"
"NA","AL" , "42000" , "35000", "42000", "42000"
"ND" ,"AL", "548000" ,"56435.666667" , "39000", "135000"
• • • • • • • • • • • • • • • • •• ETC •••••.•••••••••••••••••••••
output #14

207

You might also like