Sas: update gebruiken in proc sql
U kunt de UPDATE- instructie in PROC SQL in SAS gebruiken om de waarden in een of meer kolommen in de dataset bij te werken.
Dit zijn de meest gebruikelijke manieren om de UPDATE- instructie in de praktijk te gebruiken:
Methode 1: Update de waarden in de kolom op basis van een voorwaarde
proc sql ;
update my_data
set var1='new_value'
where var1='old_value';
quit ;
Methode 2: Waarden in kolom bijwerken op basis van meerdere voorwaarden
proc sql ;
update my_data
set var1 =
case when var1> 25 then 100
when var1> 20 then 50
else 0
end;
quit ;
De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met de volgende gegevensset 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;
Voorbeeld 1: Waarden in kolom bijwerken op basis van een voorwaarde
We kunnen de volgende UPDATE- instructie in PROC SQL gebruiken om elk van de teamkolomwaarden bij te werken naar ‚Atlanta‘, waarbij de bestaande waarden gelijk zijn aan ‚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;
Merk op dat elke waarde in de teamkolom die voorheen gelijk was aan „A“, nu gelijk is aan „Atlanta“.
Alle waarden die niet gelijk waren aan „A“ in de teamkolom werden eenvoudigweg ongewijzigd gelaten.
Voorbeeld 2: Waarden in kolom bijwerken op basis van meerdere voorwaarden
We kunnen de volgende UPDATE- instructie in PROC SQL gebruiken om elk van de waarden in de puntenkolom bij te werken op basis van verschillende voorwaarden:
/*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;
We gebruikten de UPDATE- instructie met een CASE WHEN -instructie om de waarden in de puntenkolom bij te werken.
Speciaal:
- Als de bestaande waarde in de puntenkolom groter was dan 25, updaten we deze naar 100 .
- Anders, als de bestaande waarde in de puntenkolom groter was dan 20, zouden we deze bijwerken naar 50 .
- Anders hebben we de waarde in de puntenkolom bijgewerkt naar 0 .
Houd er rekening mee dat we slechts drie voorwaarden hebben gebruikt in de CASE WHEN -instructie, maar u kunt zoveel voorwaarden gebruiken als u wilt.
Aanvullende bronnen
In de volgende zelfstudies wordt uitgelegd hoe u andere veelvoorkomende taken in SAS kunt uitvoeren:
SAS: hoe u de LIKE-operator gebruikt in PROC SQL
SAS: Hoe de IN-operator in PROC SQL te gebruiken
SAS: Hoe de WHERE-operator in PROC SQL te gebruiken