BookmarkSubscribeRSS Feed
MrBruce
Calcite | Level 5

Suppose the 'Grade' variable has 100 observations. I want to calculate the mean of those 100 observations and save the value as one varaible on the table. I know we could easily get the mean through "proc mean", but that will not save the mean value as a new varaible on the same table.

Thanks in advance. 

4 REPLIES 4
Reeza
Super User

Here's a SQL option:

proc sql;

create table want as

select *, mean(age) as avg_age

from sashelp.class;

quit;

stat_sas
Ammonite | Level 13

data have;

input grade;

datalines;

1.4

3.2

3.4

2.1

4.3

5.4

;

proc sql;

select grade,avg(grade) as mean from have;

quit;

Ksharp
Super User

OR, after get mean by proc mean , you can do something like this:

proc mean noprint;

......

output out=mean mean=;

run;

data want;

set have;

if _n_ eq 1 then set mean;

run;

Xia Keshan

user24feb
Barite | Level 11

As an alternative you could loop through your data set yourself and add the mean:

data have;
input grade;
datalines;
1.4
3.2
3.4
2.1
4.3
5.4
;
Run;

Data Want (Drop=Obs i Total);
  Do Obs=1 By 1 Until (Eof);
    Set Have End=Eof;
Total=Sum(Total,Grade);
  End;
  Mean=Total/Obs;
  Do i=1 To Obs;
    Set Have;
Output;
  End;
Run;

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 2698 views
  • 0 likes
  • 5 in conversation