## Obtain the general mean in data set by categories

Solved
Frequent Contributor
Posts: 115

# Obtain the general mean in data set by categories

[ Edited ]

good night:

i have this table:

``````data have;
input Animal age weight;
cards;``````
 1 11 10 1 21 10.2 1 31 10.21 1 41 10.22 1 45 10.45 1 50 10.6 2 43 11 2 45 11.3 2 49 11.35 2 60 11.3 2 65 12.2 2 70 12.5 2 76 12.65 2 80 13 2 95 14 2 105 16 3 25 10

;

and i need to obtain the mean of the observations, please note that the animal number 3 is alone, so i need to use this exac value to create a table like this:

 Animal Weight_Avegare 1 10.28 2 12.53 3 10.00

Thank you very much

Accepted Solutions
Solution
‎12-14-2015 11:32 AM
Frequent Contributor
Posts: 115

## Re: Obtain the general mean in data set by categories

the correct command is:

proc means data=have noprint;
class animal;
var weight;
output out=want1 mean(weight)=mean;
run;

proc sql;
create table want2 as
select animal, mean(weight) as mean_animal
from have
group by animal
order by animal;
quit;

Thank you very much

All Replies
Super User
Posts: 23,685

## Re: Obtain the general mean in data set by categories

Use the CLASS or BY statement in proc means/univariate/summary or a PROC SQL.
Here's a sample of the two ways.

proc means data=have noprint;
class animal;
var weight;
output out=want1 mean(weight)=mean;
run;

proc sql;
create table want2 as
select animal, mean(animal) as mean_animal
from have
group by animal
order by animal;
quit;
Frequent Contributor
Posts: 115

## Re: Obtain the general mean in data set by categories

Good ight and thank you for the answer, but unhappily did not work. i tested and i obtained:

Animal mean_animal
1 1
2 2
3 3
Solution
‎12-14-2015 11:32 AM
Frequent Contributor
Posts: 115

## Re: Obtain the general mean in data set by categories

the correct command is:

proc means data=have noprint;
class animal;
var weight;
output out=want1 mean(weight)=mean;
run;

proc sql;
create table want2 as
select animal, mean(weight) as mean_animal
from have
group by animal
order by animal;
quit;

Thank you very much
Valued Guide
Posts: 863

## Re: Obtain the general mean in data set by categories

Here is a solution:

data have;
input Animal age weight;
cards;
1     11     10
1     21     10.2
1     31     10.21
1     41     10.22
1     45     10.45
1     50     10.6
2     43     11
2     45     11.3
2     49     11.35
2     60     11.3
2     65     12.2
2     70     12.5
2     76     12.65
2     80     13
2     95     14
2     105 16
3     25     10
;

proc sql;
create table want as
select animal,avg(weight) as Weight_Average
from have
group by animal;

🔒 This topic is solved and locked.