## 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?

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.

Super User
Posts: 23,752

## 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;

Posts: 1,270

data have;

datalines;

1.4

3.2

3.4

2.1

4.3

5.4

;

proc sql;

quit;

Super User
Posts: 10,784

## 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: 355

## 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;
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;