How can I Calculate the Mean by Group in SAS?

To calculate the mean by group in SAS, you need to use the MEANS procedure. The MEANS procedure allows you to calculate the mean for a given group of data. You can specify the variable or variables that will be used to determine which group each observation belongs to, and then the procedure will calculate the mean for each group. This procedure also allows you to specify additional options such as the output display, summary statistics, and other options to customize the procedure for your specific needs.


You can use the following methods to calculate the mean of values by group in SAS:

Method 1: Calculate Mean by One Group

proc sql;
    select var1, mean(var2) as mean_var2
    from my_data
    group by var1;
quit;

Method 2: Calculate Mean by Multiple Groups

proc sql;
    select var1, var2, mean(var3) as mean_var3
    from my_data
    group by var1, var2;
quit;

The following examples show how to use each method with the following dataset in SAS:

/*create dataset*/
data my_data;
    input team $ position $ points;
    datalines;
A Guard 15
A Guard 12
A Guard 29
A Forward 13
A Forward 9
A Forward 16
B Guard 25
B Guard 20
B Guard 34
B Forward 19
B Forward 3
B Forward 8
;
run;

/*view dataset*/
proc print data=my_data;

Example 1: Calculate Mean by One Group

The following code shows how to calculate the mean of points by team:

/*calculate mean of points by team*/
proc sql;
    select team, mean(points) as mean_points
    from my_data
    group by team;
quit;

From the output we can see that players on team A scored a mean of 15.66667 points and players on team B scored a mean of 18.16667 points.

Example 2: Calculate Mean by Multiple Groups

The following code shows how to calculate the mean of points, group by team and position:

/*calculate mean of points, grouped by team and position*/
proc sql;
    select team, position, mean(points) as mean_points
    from my_data
    group by team, position;
quit;

The following tutorials explain how to perform other common tasks in SAS:

x