SAS : Comment utiliser UPDATE dans PROC SQL



Vous pouvez utiliser l’instruction UPDATE dans PROC SQL dans SAS pour mettre à jour les valeurs dans une ou plusieurs colonnes de l’ensemble de données.

Voici les manières les plus courantes d’utiliser l’instruction UPDATE en pratique :

Méthode 1 : mettre à jour les valeurs dans la colonne en fonction d’une condition

proc sql;
    update my_data
    set var1='new_value'
    where var1='old_value';
quit;

Méthode 2 : mettre à jour les valeurs dans la colonne en fonction de plusieurs conditions

proc sql;
    update my_data
    set var1 = 
    case when var1>25 then 100
    when var1>20 then 50
    else 0
    end;
quit;

Les exemples suivants montrent comment utiliser chaque méthode en pratique avec l’ensemble de données suivant dans SAS :

/*create dataset*/
data my_data;
    input team $ position $ points;
    datalines;
A Guard 22
A Guard 20
A Guard 30
A Forward 14
A Forward 11
B Guard 12
B Guard 22
B Forward 30
B Forward 9
B Forward 12
B Forward 25
;
run;

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

Exemple 1 : mettre à jour les valeurs dans la colonne en fonction d’une condition

Nous pouvons utiliser l’instruction UPDATE suivante dans PROC SQL pour mettre à jour chacune des valeurs de la colonne d’équipe pour qu’elles soient « Atlanta », où les valeurs existantes sont égales à « A » :

/*update values in team column where team is equal to 'A'*/
proc sql;
    update my_data
    set team='Atlanta'
    where team='A';
quit;

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

Notez que chaque valeur de la colonne d’équipe qui était auparavant égale à « A » est désormais égale à « Atlanta ».

Toutes les valeurs qui n’étaient pas égales à « A » dans la colonne de l’équipe étaient simplement laissées inchangées.

Exemple 2 : mettre à jour les valeurs dans la colonne en fonction de plusieurs conditions

Nous pouvons utiliser l’instruction UPDATE suivante dans PROC SQL pour mettre à jour chacune des valeurs de la colonne de points en fonction de plusieurs conditions :

/*update values in points column based on multiple conditions*/
proc sql;
    update my_data
    set points = 
    case when points>25 then 100
    when points>20 then 50
    else 0
    end;
quit;

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

Nous avons utilisé l’instruction UPDATE avec une instruction CASE WHEN pour mettre à jour les valeurs dans la colonne des points.

En particulier:

  • Si la valeur existante dans la colonne des points était supérieure à 25, nous la mettons à jour à 100 .
  • Sinon, si la valeur existante dans la colonne des points était supérieure à 20, nous la mettions à jour à 50 .
  • Sinon, nous avons mis à jour la valeur dans la colonne des points pour qu’elle soit 0 .

Notez que nous n’avons utilisé que trois conditions dans l’instruction CASE WHEN , mais vous pouvez utiliser autant de conditions que vous le souhaitez.

Ressources additionnelles

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

SAS : Comment utiliser l’opérateur LIKE dans PROC SQL
SAS : Comment utiliser l’opérateur IN dans PROC SQL
SAS : Comment utiliser l’opérateur WHERE dans PROC SQL

Ajouter un commentaire

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