Comment calculer la somme par groupe dans SAS



Vous pouvez utiliser les méthodes suivantes pour calculer la somme des valeurs par groupe dans SAS :

Méthode 1 : calculer la somme par un groupe

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

Méthode 2 : calculer la somme par plusieurs groupes

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

Les exemples suivants montrent comment utiliser chaque méthode avec l’ensemble de données suivant dans 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;

Exemple 1 : calculer la somme par un groupe

Le code suivant montre comment calculer la somme des points par équipe :

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

D’après le résultat, nous pouvons voir que les joueurs de l’équipe A ont marqué un total de 94 points et que les joueurs de l’équipe B ont marqué un total de 109 points.

Exemple 2 : calculer la somme par plusieurs groupes

Le code suivant montre comment calculer la somme des points, groupe par équipe et position :

/*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;

Le tableau résultant montre la somme des points marqués par les joueurs en fonction de leur équipe et de leur position.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans SAS :

Comment normaliser les données dans SAS
Comment renommer des variables dans SAS
Comment supprimer les doublons dans SAS
Comment remplacer les valeurs manquantes par zéro dans SAS

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *