Sas: come utilizzare update in proc sql


È possibile utilizzare l’istruzione UPDATE in PROC SQL in SAS per aggiornare i valori in una o più colonne nel set di dati.

Ecco i modi più comuni per utilizzare nella pratica l’istruzione UPDATE :

Metodo 1: aggiorna i valori nella colonna in base a una condizione

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

Metodo 2: aggiorna i valori nella colonna in base a più condizioni

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

I seguenti esempi mostrano come utilizzare ciascun metodo nella pratica con il seguente set di dati in 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; 

Esempio 1: aggiorna i valori nella colonna in base a una condizione

Possiamo utilizzare la seguente istruzione UPDATE in PROC SQL per aggiornare ciascuno dei valori della colonna del team in “Atlanta”, dove i valori esistenti equivalgono a “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; 

Tieni presente che ogni valore nella colonna della squadra che in precedenza equivaleva ad “A” ora equivale ad “Atlanta”.

Tutti i valori che non erano uguali ad “A” nella colonna della squadra venivano semplicemente lasciati invariati.

Esempio 2: aggiorna i valori nella colonna in base a più condizioni

Possiamo utilizzare la seguente istruzione UPDATE in PROC SQL per aggiornare ciascuno dei valori nella colonna dei punti in base a diverse condizioni:

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

Abbiamo utilizzato l’istruzione UPDATE con un’istruzione CASE WHEN per aggiornare i valori nella colonna dei punti.

Particolarmente:

  • Se il valore esistente nella colonna dei punti era maggiore di 25, lo aggiorneremo a 100 .
  • Altrimenti, se il valore esistente nella colonna dei punti fosse maggiore di 20, lo aggiorneremmo a 50 .
  • Altrimenti, abbiamo aggiornato il valore nella colonna dei punti in 0 .

Tieni presente che abbiamo utilizzato solo tre condizioni nell’istruzione CASE WHEN , ma puoi utilizzare tutte le condizioni che desideri.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in SAS:

SAS: come utilizzare l’operatore LIKE in PROC SQL
SAS: come utilizzare l’operatore IN in PROC SQL
SAS: come utilizzare l’operatore WHERE in PROC SQL

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *