Hi Friend,
I am new to SAS and while solving the problem stuck in very basic step. I have three coloumn data is like Grade sub Grade and their average value. I have take average of Grade and Sub-grade. Thank you...
Data Example
InputData | Output | ||||||
Col 1 | Col 2 | Avg | Average of Avg | ||||
A | A1 | 15 | Col 1 | Col 2 | Total | ||
A | A2 | 13 | A | A1 | 15 | ||
A | A3 | 16 | A2 | 13 | |||
A | A4 | 11 | A3 | 16 | |||
B | B1 | 12 | A4 | 11 | |||
B | B2 | 11 | A Avg | 13.75 | |||
B | B3 | 13 | B | B1 | 12 | ||
C | C1 | 17 | B2 | 11 | |||
C | C2 | 18 | B3 | 13 | |||
C | C3 | 13 | B Avg | 12 | |||
C | C4 | 20 | C | C1 | 17 | ||
C | C5 | 20 | C2 | 18 | |||
C3 | 13 | ||||||
C4 | 20 | ||||||
C5 | 20 | ||||||
C Avg | 17.6 | ||||||
Grand Total | 14.91666667 |
That's actually better done in either proc report or tabulate.
Possibly proc PRINT as well.
One way:
data have;
informat Col1 Col2 $5. Avg best5.;
input Col1 Col2 Avg ;
label
Col1 = "Col 1"
Col2 = "Col 2"
;
datalines;
A A1 15
A A2 13
A A3 16
A A4 11
B B1 12
B B2 11
B B3 13
C C1 17
C C2 18
C C3 13
C C4 20
C C5 20
run;
proc tabulate data=have;
class col1 col2;
var avg;
table col1*(col2 All='Group Avg') All='Grand Total',
avg=''*mean='Total'*f=best7.;
run;
Adjust the format for the desired number of decimals.
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.