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