Sas: กรองแถวที่มีสตริง
คุณสามารถใช้วิธีการต่อไปนี้เพื่อกรองชุดข้อมูล SAS สำหรับแถวที่มีสตริงบางอย่าง:
วิธีที่ 1: กรองแถวที่มีสตริงเฉพาะ
/*filter rows where var1 contains "string1"*/
data specific_data;
set original_data;
where var1 contains ' string1 ';
run ;
วิธีที่ 2: กรองแถวที่มีหนึ่งสายจากหลาย ๆ สาย
/*filter rows where var1 contains "string1", "string2", or "string3"*/
data specific_data;
set original_data;
where var1 in (' string1 ', ' string2 ', ' string3 ');
run ;
ตัวอย่างต่อไปนี้แสดงวิธีใช้แต่ละวิธีกับชุดข้อมูลต่อไปนี้ใน SAS:
/*create dataset*/
data nba_data;
input team $points;
datalines ;
Mavs 95
Spurs 99
Warriors 104
Rockets 98
Heat 95
Nets 90
Magic 99
Cavs 106
;
run ;
/*view dataset*/
proc print data =nba_data;
วิธีที่ 1: กรองแถวที่มีสตริงเฉพาะ
รหัสต่อไปนี้แสดงวิธีการกรองชุดข้อมูลสำหรับแถวที่มีสตริง “avs” ในคอลัมน์ ทีม :
/*filter rows where team contains the string 'avs'*/ data specific_data; set nba_data; where team contains ' avs '; run ; /*view resulting rows*/ proc print data = specific_data;
มีเพียงสองบรรทัดที่แสดงคือคอลัมน์ ทีม มี “avs” อยู่ในชื่อ
วิธีที่ 2: กรองแถวที่มีหนึ่งในหลายสตริง
รหัสต่อไปนี้แสดงวิธีการกรองชุดข้อมูลสำหรับแถวที่มีสตริง “Mavs”, “Nets” หรือ “Rockets” ในคอลัมน์ ทีม :
/*filter rows where team contains the string 'Mavs', 'Nets', or 'Rockets'*/ data specific_data; set nba_data; where team in (' Mavs ', ' Nets ', ' Rockets '); run ; /*view resulting rows*/ proc print data = specific_data;
ชุดข้อมูลผลลัพธ์จะแสดงเฉพาะแถวที่คอลัมน์ ทีม มีหนึ่งในสามสตริงที่เราระบุ
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน SAS:
วิธีทำให้ข้อมูลเป็นมาตรฐานใน SAS
วิธีเปลี่ยนชื่อตัวแปรใน SAS
วิธีลบรายการที่ซ้ำกันใน SAS
วิธีแทนที่ค่าที่หายไปด้วยศูนย์ใน SAS