How to calculate the mean of all the observations of one variable and add the mean value as a variable on the table for every observation?

Reply
Occasional Contributor
Posts: 5

How to calculate the mean of all the observations of one variable and add the mean value as a variable on the table for every observation?

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. 

Super User
Posts: 17,868

Re: How to calculate the mean of all the observations of one variable and add the mean value as a variable on the table for every observation?

Here's a SQL option:

proc sql;

create table want as

select *, mean(age) as avg_age

from sashelp.class;

quit;

Trusted Advisor
Posts: 1,204

Re: How to calculate the mean of all the observations of one variable and add the mean value as a variable on the table for every observation?

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;

Super User
Posts: 9,682

Re: How to calculate the mean of all the observations of one variable and add the mean value as a variable on the table for every observation?

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

Super Contributor
Posts: 336

Re: How to calculate the mean of all the observations of one variable and add the mean value as a variable on the table for every observation?

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;

Ask a Question
Discussion stats
  • 4 replies
  • 223 views
  • 0 likes
  • 5 in conversation