Sas: วิธีใช้คำสั่ง if ใน proc sql
แม้ว่าจะไม่สามารถใช้คำสั่ง IF ใน PROC SQL ใน SAS ได้ แต่คุณสามารถใช้ตัวดำเนินการ CASE เพื่อกำหนดค่าที่ตัวแปรควรใช้ตามเงื่อนไขบางประการ
ตัวอย่างต่อไปนี้แสดงวิธีใช้ตัวดำเนินการ CASE ในทางปฏิบัติ กับชุดข้อมูลต่อไปนี้ใน SAS ที่มีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:
/*create dataset*/
data my_data;
input team $points;
datalines ;
Cavs 12
Cavs 14
Warriors 15
Hawks 18
Mavs 31
Mavs 32
Mavs 35
Celtics 36
Celtics 40
;
run ;
/*view dataset*/
proc print data =my_data;
ตัวอย่างที่ 1: การใช้ตัวดำเนินการ CASE โดยมีเพียงสองผลลัพธ์
เราสามารถใช้ตัวดำเนินการ CASE ใน PROC SQL เพื่อสร้างคอลัมน์ใหม่ในชุดข้อมูลชื่อ point_flag ซึ่งรับค่าเป็น 0 หากค่าในคอลัมน์ จุด น้อยกว่า 20 หรือค่า 1 มิฉะนั้น:
/*create new column called points_flag using case operator*/
proc sql ;
select *,
box
when points < 20 then 0 else 1
end as points_flag
from my_data;
quit ;
โปรดทราบว่าคอลัมน์ point_flag จะใช้ค่า 0 หากค่าของคอลัมน์ point น้อยกว่า 20 หรือค่า 1 มิฉะนั้น
ตัวอย่างที่ 2: การใช้ตัวดำเนินการ CASE กับผลลัพธ์มากกว่าสองรายการ
นอกจากนี้เรายังสามารถใช้ตัวดำเนินการ CASE ใน PROC SQL เพื่อสร้างคอลัมน์ใหม่ในชุดข้อมูลที่เรียกว่า point_flag ซึ่งรับค่าเป็น 0 หากค่าในคอลัมน์ จุด น้อยกว่า 20 ค่าจะเป็น 1 หาก จุด น้อยกว่า 35 หรือค่า 2 มิฉะนั้น:
/*create new column called points_flag using case operator*/
proc sql ;
select *,
box
when points < 20 then 0
when points < 35 then 1 else 2
end as points_flag
from my_data;
quit ;
โปรดทราบว่าคอลัมน์ point_flag รับค่า 0, 1 หรือ 2 ขึ้นอยู่กับค่าที่สอดคล้องกันในคอลัมน์ point
หมายเหตุ : คุณสามารถใช้ คำ สั่งได้มากเท่าที่คุณต้องการเพื่อสร้างค่าที่แตกต่างกันได้มากเท่าที่คุณต้องการในคอลัมน์ใหม่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน SAS:
SAS: วิธีใช้ตัวดำเนินการ WHERE ใน PROC SQL
SAS: วิธีใช้ตัวดำเนินการ IN ใน PROC SQL
SAS: วิธีใช้ UPDATE ใน PROC SQL
SAS: วิธีใช้ CONTAINS ใน PROC SQL