Как рассчитать сумму по группе в SAS


Вы можете использовать следующие методы для вычисления суммы значений по группам в SAS:

Метод 1: вычислить сумму по одной группе

proc sql ;
 select var1, sum(var2) as sum_var2
 from my_data
 group by var1;
quit ;

Метод 2: вычислить сумму по нескольким группам

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

В следующих примерах показано, как использовать каждый метод со следующим набором данных в 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; 

Пример 1: вычислить сумму по одной группе

Следующий код показывает, как вычислить сумму очков по командам:

/\*calculate sum of points by team\*/
proc sql ;
 select team, sum(points) as sum_points
 from my_data
 group by team;
quit ;

Из вывода мы видим, что игроки команды A набрали в общей сложности 94 очка, а игроки команды B набрали в общей сложности 109 очков.

Пример 2: вычисление суммы по нескольким группам

В следующем коде показано, как рассчитать сумму очков, сгруппировать по командам и позициям:

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

В итоговой таблице показана сумма очков, набранных игроками в зависимости от их команды и позиции.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:

Как нормализовать данные в SAS
Как переименовать переменные в SAS
Как удалить дубликаты в SAS
Как заменить пропущенные значения нулем в SAS