|
Chapter Contents |
Previous |
Next |
| Working with Matrices |
Simple assignment statements involve an equation having the matrix name on the left-hand side and either an expression involving other matrices or a matrix-generating function on the right-hand side.
Suppose you want to generate some statistics for the weekly coffee data. If a cup of coffee costs 30 cents, then you can create a matrix with the daily expenses, DAYCOST, by multiplying the per-cup cost with the matrix COFFEE using the elementwise multiplication operator (#). Turn off the automatic printing so that you can tailor the output with the ROWNAME= and FORMAT= options in the PRINT statement.
> reset noprint;
> daycost=0.30#coffee;
> print "Daily totals", daycost[rowname=names format=8.2];
Daily totals
DAYCOST
JENNY 1.20 0.60 0.60 0.90 0.60
LINDA 0.90 0.90 0.30 0.60 0.30
JIM 0.60 0.30 0.00 0.60 0.30
SAMUEL 1.50 1.20 1.20 0.90 1.20
You can calculate the weekly total cost for each
person using the matrix multiplication operator (*).
First create a 5 ×1 vector of 1s.
This vector sums the daily costs for each
person when multiplied with COFFEE.
(You will see later that there is a more efficient
way to do this using subscript reduction operators.)
> ones={1,1,1,1,1};
> weektot=daycost*ones;
> print "Week total", weektot[rowname=names format=8.2];
Week total
WEEKTOT
JENNY 3.90
LINDA 3.00
JIM 1.80
SAMUEL 6.00
Finally, you can calculate the average number of cups
drunk per day by dividing the grand total of cups by days.
To find the grand total, use the SUM function,
which returns the sum of all elements of a matrix.
Next, divide the grand total by 5, the number
of days (which is the number of columns) using
the division operator (/) and the NCOL function.
These two matrices are created separately, but the
entire calculation could be done in one statement.
> grandtot=sum(coffee);
> average=grandtot/ncol(coffee);
> print "Total number of cups", grandtot,,"Daily average",average;
Total number of cups
GRANDTOT
49
Daily average
AVERAGE
9.8
|
Chapter Contents |
Previous |
Next |
Top |
Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.