Sas: so verwenden sie update in proc sql


Sie können die UPDATE- Anweisung in PROC SQL in SAS verwenden, um die Werte in einer oder mehreren Spalten im Datensatz zu aktualisieren.

Hier sind die gebräuchlichsten Möglichkeiten, die UPDATE- Anweisung in der Praxis zu verwenden:

Methode 1: Aktualisieren Sie die Werte in der Spalte basierend auf einer Bedingung

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

Methode 2: Werte in der Spalte basierend auf mehreren Bedingungen aktualisieren

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

Die folgenden Beispiele zeigen, wie jede Methode in der Praxis mit dem folgenden Datensatz in SAS verwendet wird:

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

Beispiel 1: Werte in der Spalte basierend auf einer Bedingung aktualisieren

Wir können die folgende UPDATE- Anweisung in PROC SQL verwenden, um jeden der Teamspaltenwerte auf „Atlanta“ zu aktualisieren, wobei die vorhandenen Werte gleich „A“ sind:

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

Beachten Sie, dass jeder Wert in der Teamspalte, der zuvor „A“ entsprach, jetzt „Atlanta“ entspricht.

Alle Werte, die in der Teamspalte nicht gleich „A“ waren, wurden einfach unverändert gelassen.

Beispiel 2: Werte in der Spalte basierend auf mehreren Bedingungen aktualisieren

Wir können die folgende UPDATE- Anweisung in PROC SQL verwenden, um jeden der Werte in der Punktespalte basierend auf mehreren Bedingungen zu aktualisieren:

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

Wir haben die UPDATE- Anweisung mit einer CASE WHEN- Anweisung verwendet, um die Werte in der Punktespalte zu aktualisieren.

Besonders:

  • Wenn der vorhandene Wert in der Punktespalte größer als 25 war, aktualisieren wir ihn auf 100 .
  • Andernfalls, wenn der vorhandene Wert in der Punktespalte größer als 20 wäre, würden wir ihn auf 50 aktualisieren.
  • Andernfalls haben wir den Wert in der Punktespalte auf 0 aktualisiert.

Beachten Sie, dass wir in der CASE WHEN- Anweisung nur drei Bedingungen verwendet haben, Sie können jedoch so viele Bedingungen verwenden, wie Sie möchten.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in SAS ausführen:

SAS: So verwenden Sie den LIKE-Operator in PROC SQL
SAS: So verwenden Sie den IN-Operator in PROC SQL
SAS: So verwenden Sie den WHERE-Operator in PROC SQL

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert